• Почему не удаляется выбранный элемент из массива?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Потому что смещение.

    На первой итерации:
    array ====> [4,4,5,4]
    index ====> 0
    Удаляем 0-й элемент, остаётся [4,5,4]

    На второй итерации:
    array ====> [4,5,4]
    index ====> 1
    Не удаляем ничего, потому что array[1] == 5, а пятерку мы не трогаем.

    Но третьей итерации:
    array ====> [4,5,4]
    index ====> 2
    Удаляем последнюю 4-ку.

    Остаётся [4,5]
    Это и есть сухой остаток.

    Решение

    Перебираем массив в обратном порядке.
    var array = [4, 4, 5, 4];
    var num = 4;
    
    for(var index=array.length-1; index>=0; index--){
        if(array[index] === num){
            array.splice(index, 1);
            console.log(index + " - позиции - " + num + " удалено");
        }
    }
    
    console.log(array + " — остальные числа");

    Ответ написан
    1 комментарий