Не работает if условие на false

Рейтинг: 0Ответов: 1Опубликовано: 20.03.2015

Доброго времени суток.

Хочу узнать, как можно удалить все false элементы из массива в js, проблема в том, что на элементе false что-то идёт не так. Совсем уже запутался. ( Подскажите, пожалуйста.

function bouncer(arr) {
  for(var i = 0; i < arr.length; i++) {
    if (!(arr[i])) {
      arr.splice(i, 1);
    }
  }
  return arr;
}

console.log(bouncer([7, 'ate', '', false, 9]));

Ответы

▲ 2Принят

Удаляйте в противоположном направлении. И все будет работать. Где-то так:

function bouncer(arr) {
  for(var i = arr.length-1; i>= 0; i--) {
    if (!(arr[i])) {
      arr.splice(i, 1);
    }
  }
  return arr;
}

console.log(bouncer([7, 'ate', '', false, 9]));

Либо используйте функцию filter.