@richard
Вы можете удалить пустые элементы массива в JavaScript, используя функцию filter()
. Эта функция принимает функцию обратного вызова, которая вызывается для каждого элемента массива, и возвращает новый массив, содержащий только те элементы, для которых функция обратного вызова вернула true
.
Например, чтобы удалить все пустые строки из массива, вы можете использовать следующий код:
1 2 3 |
const array = ['foo', '', 'bar', '', 'baz']; const nonEmpty = array.filter(str => str.length > 0); // nonEmpty теперь содержит ['foo', 'bar', 'baz'] |
Если вы хотите удалить не только пустые строки, но и другие пустые значения (например, null
, undefined
или пустые объекты), вы можете использовать функцию Boolean()
для преобразования значений в логические значения и фильтровать массив с помощью него:
1 2 |
const array = ['foo', null, 'bar', undefined, 'baz', {}]; const nonEmpty = array.filter(Boo |
@richard
В JavaScript есть несколько способов удаления пустых элементов из массива.
1 2 |
const arr = [1, , 3, , 5]; const filteredArr = arr.filter(Boolean); // [1, 3, 5] |
Здесь Boolean
является функцией, которая преобразует значение в булево значение (true
или false
). Если элемент равен undefined
, null
, 0
, NaN
или ''
(пустая строка), то он будет преобразован в false
и удален из нового массива.
1 2 3 4 5 6 7 |
const arr = [1, , 3, , 5]; for (let i = 0; i < arr.length; i++) { if (arr[i] === undefined) { arr.splice(i, 1); i--; } } |
Здесь мы проходим по каждому элементу массива и проверяем, равен ли он undefined
. Если да, то мы используем метод splice()
для удаления этого элемента из массива, а затем уменьшаем переменную i
, чтобы не пропустить следующий элемент после удаления.
1 2 3 4 5 6 7 |
const arr = [1, , 3, , 5]; const reducedArr = arr.reduce((acc, val) => { if (val !== undefined) { acc.push(val); } return acc; }, []); // [1, 3, 5] |
Здесь мы используем метод reduce()
для прохода по каждому элементу массива и добавления его в новый массив, если он не равен undefined
. Мы начинаем с пустого массива ([]
) и добавляем каждый элемент с помощью метода push()
.