#javascript
#javascript
Вопрос:
Это действительно глупый вопрос, но я просто рисую пробел здесь…
Что это за тип объявления переменной:
var s1 = [1,2,3,4]
Кроме того, как я могу создать подобную переменную из нескольких объектов, когда количество этих объектов неизвестно. Это то, что я придумал, но это не работает.
var s1 = [];
for(x in data[i].uh) {
s1 = data[i].uh[x];
}
Комментарии:
1. это массив. developer.mozilla.org/en/JavaScript/Reference/Global_Objects /…
Ответ №1:
var s1 = [1,2,3,4]
является объявлением массива из четырех целых чисел с использованием «Литеральной нотации массива»
Вам не нужен цикл для копирования массива, просто сделайте это:
var s1 = data.slice(0);
или в вашем примере вам может понадобиться это:
var s1 = data[i].uh.slice(0);
Подробнее о копировании массивов читайте здесь: http://my.opera.com/GreyWyvern/blog/show.dml/1725165
«Метод slice(0) означает возврат фрагмента массива от элемента 0 до конца. Другими словами, весь массив. Вуаля, копия массива.»
Комментарии:
1. Будьте осторожны с дублированием массива с помощью slice, поскольку это ссылочная копия, а не копия значения. Это означает, что если вы измените одну, вы измените другую.
2.@The_asMan Нет, он копирует массив. Рассмотрим этот код:
var foo = [1,2,3,4,5]; alert(foo[2]); /* Returns 3 */ var bar = foo.slice(0); alert(bar[2]); /* Returns 3 */ bar[2] = 0; alert(bar[2]); /* Returns 0 */ alert(foo[2]); /* Returns 3 */
w3schools.com/jsref/jsref_slice_array.asp
Ответ №2:
Это называется an Array
, который может быть объявлен с помощью new Array()
или с помощью литерала массива []
, как в вашем примере. Вы можете использовать Array.push()
метод (см. Документы), чтобы добавить к нему новое значение:
var s1 = [];
for(x in data[i].uh) {
s1.push(data[i].uh[x]);
}
Комментарии:
1. Ого. Хорошо, я думал, что массивы должны быть объявлены с помощью new Array () .
Ответ №3:
Это
var s1 = [1,2,3,4]
является объявлением массива.
Чтобы добавить элемент в массив, используйте push
метод:
var s1 = [];
for(x in data[i].uh) {
s1.push(data[i].uh[x]);
}
Ответ №4:
s1
это массив, это надлежащий объект Javascript с функциями.
var s1 = [];
это рекомендуемый способ создания массива. В отличие от:
var s1 = new Array();
(смотрите:http://www.hunlock.com/blogs/Mastering_Javascript_Arrays )
Для добавления элементов в массив используйте s1.push(item)
, чтобы ваш код был:
var s1 = [];
for(x in data[i].uh) {
s1.push(data[i].uh[x]);
}
В качестве дополнительного примечания я бы не рекомендовал использовать for-in, по крайней мере, без проверки hasOwnProperty .
Ответ №5:
Это объявление локальной переменной с помощью Array
с 4 членами.
Если вы хотите добавить к Array
, используйте push()
метод.
Ответ №6:
Это массив. Для добавления в массивы вы бы использовали Array.push(). Например:
var s1 = [];
s1.push(1);
s1.push(2);