Задать вопрос
@partizzend

Как удалить подмассив из массива, если в подмассиве только пустые строки?

Как удалить подмассив, не содержащий значений, из масссива arr?
var arr = [
  [1, 2, 3, 4, 5, 6, 7],
  [4, 3, 2, 55],
  ["", "", "", ""]
];
  • Вопрос задан
  • 950 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Как будем определять, должен ли элемент массива остаться:

const mustStay = arr => arr.some(n => n !== '');

Собираем новый массив:

const newArr = arr.filter(mustStay);

Изменяем существующий:

for (let i = arr.length; i--;) {
  if (!mustStay(arr[i])) {
    for (let j = i; ++j < arr.length; arr[j - 1] = arr[j]) ;
    arr.pop();
  }
}

// или

arr.reduceRight((_, n, i, a) => mustStay(n) || a.splice(i, 1), null);

// или

arr.splice(0, arr.length, ...arr.filter(mustStay));

// или

arr.length -= arr.reduce((acc, n, i, a) => (
  a[i - acc] = n,
  acc + !mustStay(n)
), 0);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы