Массивы JavaScript - PullRequest
       18

Массивы JavaScript

8 голосов
/ 04 февраля 2010

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

Ответы [ 4 ]

29 голосов
/ 04 февраля 2010

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]

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

6 голосов
/ 04 февраля 2010

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

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

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

5 голосов
/ 04 февраля 2010

Вы можете попробовать это:

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

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

0 голосов
/ 24 июня 2010

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

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

См .: Конкат

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...