Массивы JavaScript

Что самый легкий путь состоит в том, чтобы вставить новый объект в массив объектов в индексном положении 0? Никакой jQuery; MooTools хорошо; нет unshift() потому что это undefined в IE согласно w3schools.

8
задан JamesBrownIsDead 4 February 2010 в 05:06
поделиться

4 ответа

W3CSchools является действительно устаревшим , метод unshift является частью стандарта ECMAScript 3rd Edition, который был одобрен и опубликован в декабре 1999 года.

В настоящее время нет причин избегать его, он поддерживается начиная с IE 5.5.

Его можно безопасно использовать, даже такие современные библиотеки как jQuery или MooTools используют его внутри (вы можете проверить исходный код :).

var array = [2,3];
array.unshift(1); // returns 3
// modifies array to [1, 2, 3]

Этот метод возвращает новую длину массива и вставляет переданный в качестве аргумента элемент в первую позицию массива.

29
ответ дан 5 December 2019 в 04:49
поделиться

Используя метод сращивания .

array.splice(index,howmany,element1,.....,elementX);

Для вставки 'howmany' = 0

.
6
ответ дан 5 December 2019 в 04:49
поделиться

Можно попробовать так:

var newItem = 3;
arr = [newItem].concat(arr);

Другой вариант - использовать push и перевернуть индексы - можно легко написать объект, который это делает.

5
ответ дан 5 December 2019 в 04:49
поделиться

Я бы использовал unshift(), если вы намерены изменить массив, в противном случае вы можете использовать concat(), как предложил Коби (который возвращает новый массив и не изменяет задействованные массивы):

var arr = [1, 2], newItem = 3;
var newArr = [newItem].concat(arr); // newArr = [1, 2, 3], arr still = [1, 2]

См.: concat

0
ответ дан 5 December 2019 в 04:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: