Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как удалить пустые значения из массива

Короткий ответ

filter(Boolean) оставляет только истинные значения. Он удаляет null, undefined, пустые строки, 0, false и NaN:

const values = ['a', '', null, 'b', undefined, 0, 'c'];
 
console.log(values.filter(Boolean));

Результат:

[
  "a",
  "b",
  "c"
]

Сохранить нули

Если 0 и false — настоящие данные, удаляйте только null, undefined и пустые строки:

const values = [0, '', null, 5, undefined, false];
const clean = values.filter((value) => value !== null && value !== undefined && value !== '');
 
console.log(JSON.stringify(clean));

Результат:

[0,5,false]

Строки из пробелов

Сначала обрежьте строки, если пробелы должны считаться пустотой:

const tags = ['js', '  ', 'css', ''];
 
console.log(tags.map((tag) => tag.trim()).filter(Boolean).join(', '));

Результат:

js, css

Частая ошибка

filter(Boolean) удаляет и нули, а в списках чисел это часто ошибка:

console.log([3, 0, 7].filter(Boolean).join(', '));

Результат:

3, 7

Функции из этого ответа

  • Array.prototype.filter — Создаёт новый массив из элементов, прошедших проверку.
  • Boolean() — Превращает значение в true или false.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.