Что, если вы хотите очистить весь массив и просто выгрузить все его элементы?
Есть несколько приемов, которые вы можете использовать для создания пустого или нового массива.
Самый простой и быстрый способ - установить в качестве переменной массива пустой массив:
var ar = [1, 2, 3, 4, 5, 6]; // do stuffar = []; // новый , пустой массив!
Проблема может возникнуть, если у вас есть ссылки на переменную. Ссылки на эту переменную не изменятся, они по-прежнему будут содержать значения исходного массива. Это, конечно, может создать ошибку.
Это упрощенный пример этого сценария:
var arr1 = [1, 2, 3, 4, 5, 6]; var arr2 = arr1; // Ссылка на arr1 по другой переменной arr1 = []; console.log (arr2); // Вывод [1, 2, 3, 4, 5, 6]
Простой трюк для очистки массива - установить для его свойства length значение 0.
var ar = [1, 2, 3, 4, 5, 6]; console.log (ар); // Вывод [1, 2, 3, 4, 5, 6] ar.length = 0; console.log (ar); // Вывод []
Другой неестественный прием - использовать метод splice, передавая длину массива в качестве второго параметра. Это вернет копию исходных элементов, что может быть удобно для вашего сценария.
var ar = [1, 2, 3, 4, 5, 6]; console.log (ar); // Вывод [1, 2, 3, 4, 5, 6] ar.splice (0, ar.length); console.log (ar); // Вывод []
Последние два метода не создают новый массив, а изменяют элементы массива. Это означает, что ссылки также должны обновляться.
Есть другой способ, используя while l oop. Мне это кажется немного странным, но в то же время выглядит модно, поэтому может впечатлить некоторых друзей!
var ar = [1, 2, 3, 4, 5, 6]; console.log ( ар); // Вывод [1, 2, 3, 4, 5, 6] while (ar.length) {ar.pop (); } console.log (ар); // Вывод []
Я бы не сказал go об очистке массива JavaScript, но он работает и читается. Некоторые тесты производительности также показали, что это самый быстрый метод, так что, возможно, он лучше, чем я думал изначально!