Подтвердить что ты не робот

Javascript "shift" против "splice" - эти утверждения равны?

Я просто хочу подтвердить, дают ли следующие два оператора Javascript те же результаты, что мне кажется:

Во-первых:

var element = my_array.splice(0,1)[0];

Во-вторых:

var element = my_array.shift();

Я хочу заменить первый на второй, в моем собственном коде, чтобы улучшить читаемость. Могу ли я это сделать?

4b9b3361

Ответ 1

Они будут иметь тот же эффект, да. splice(0, 1) удалит первый элемент из my_array и вернет новый массив, содержащий этот элемент. shift сделает то же самое, но вернет сам элемент, а не массив.

shift более читабельна (на мой взгляд) и также значительно быстрее (по крайней мере, в Chrome):

enter image description here

Ответ 2

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

Вы должны использовать второй, и код будет более читабельным.

Ответ 3

shift возвращает элемент, который был удален, splice возвращает массив элементов, которые были удалены.

сказав, что оба утверждения делают одно и то же, и я соглашусь, что второе более читаемо.