Объявление переменной JavaScript

#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);