Что самый легкий путь состоит в том, чтобы вставить новый объект в массив объектов в индексном положении 0? Никакой jQuery; MooTools хорошо; нет unshift()
потому что это undefined
в IE согласно w3schools.
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]
Этот метод возвращает новую длину массива и вставляет переданный в качестве аргумента элемент в первую позицию массива.
Используя метод сращивания .
array.splice(index,howmany,element1,.....,elementX);
Для вставки 'howmany' = 0
.Можно попробовать так:
var newItem = 3;
arr = [newItem].concat(arr);
Другой вариант - использовать push
и перевернуть индексы - можно легко написать объект, который это делает.
Я бы использовал unshift()
, если вы намерены изменить массив, в противном случае вы можете использовать concat()
, как предложил Коби (который возвращает новый массив и не изменяет задействованные массивы):
var arr = [1, 2], newItem = 3;
var newArr = [newItem].concat(arr); // newArr = [1, 2, 3], arr still = [1, 2]
См.: concat