Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему в for неправильная итерация массива (https://javascript.ru/forum/misc/73017-pochemu-v-nepravilnaya-iteraciya-massiva.html)

ermak20 14.03.2018 13:16

спасибо за помощь, разобрался

Alexandroppolus 14.03.2018 13:52

по сабжу и в целом:
1) поразрядные операции в js не настолько быстрые, как, например, в с++, потому что js-ное "число непойми какого типа" сначала приводится к integer, потом делается поразрядное действие.

2) как уже говорил, цикл+splice очень неэффективный вариант, дает сложность O(N^2)
вот линейный вариант: https://javascript.ru/forum/misc/685...tml#post450880

рони 14.03.2018 14:17

ermak20,
var a = [1, 2, 2, 2, 2, 3, 4];
for (var i = 0; i < a.length; ) {
  if ((a[i] % 2) == 0) {
    a.splice(i, 1);
  }
  else i++
}
alert(a);


Часовой пояс GMT +3, время: 01:39.