Javascript "shift" против "splice" - эти утверждения равны?
Я просто хочу подтвердить, дают ли следующие два оператора Javascript те же результаты, что мне кажется:
Во-первых:
var element = my_array.splice(0,1)[0];
Во-вторых:
var element = my_array.shift();
Я хочу заменить первый на второй, в моем собственном коде, чтобы улучшить читаемость. Могу ли я это сделать?
Ответы
Ответ 1
Они будут иметь тот же эффект, да. splice(0, 1)
удалит первый элемент из my_array
и вернет новый массив, содержащий этот элемент. shift
сделает то же самое, но вернет сам элемент, а не массив.
shift
более читабельна (на мой взгляд) и также значительно быстрее (по крайней мере, в Chrome):
![enter image description here]()
Ответ 2
Обе строки кода удаляют первый элемент из массива и возвращают удаленный элемент, оба они поддерживаются во всех основных браузерах.
Вы должны использовать второй, и код будет более читабельным.
Ответ 3
shift возвращает элемент, который был удален, splice возвращает массив элементов, которые были удалены.
сказав, что оба утверждения делают одно и то же, и я соглашусь, что второе более читаемо.