Можно ли удалить все элементы массива, изменив его длину?
Есть массив, содержащий n элементов, назовём его arr. Могу ли я удалить все элементы таким образом: arr.length = 0, или они останутся в памяти?
Ответы (1 шт):
Удаление методом splice - arr = arr.splice(0, arr.length) удаляет все элементы массива, но они остаются в памяти, пока сборщик мусора до них не дойдет.
Запись переопределения arr = [] подходит лишь в тех случаях, когда в других местах кода нет обращений к первоначальному массиву и только лишь переменная arr обращается к массиву, в противном случае, остальные переменные не изменят значения и будут работать со старым массивом.
Способ обнуления длины массива - arr.length = 0 работает точно так же, как и splice, элементы остаются в памяти, пока сборщик мусора до них не дойдет.