Показать сообщение отдельно
  #4 (permalink)  
Старый 20.10.2017, 00:40
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

delete использовать неправильно, он просто затирает пунктик.

splice сдвигает хвост массива, и если понадобится удалить много элементов, сложность будет O(N^2)

для линейной сложности такой вариант:
var arr = [1,2,3,4,5,6,7];

for (var p = 0, i = 0, le = arr.length; i < le; ++i) {
  if (!(arr[i] > 4)) {
    arr[p++] = arr[i];
  }
}
arr.length = p;

alert(arr.join(', '));

Последний раз редактировалось Alexandroppolus, 20.10.2017 в 00:42.
Ответить с цитированием