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

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

Как удалить подмассив, не содержащий значений, из масссива arr?
var arr = [
  [1, 2, 3, 4, 5, 6, 7],
  [4, 3, 2, 55],
  ["", "", "", ""]
];
  • Вопрос задан
  • 961 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Как будем определять, должен ли элемент массива остаться:

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

Удаляем неподходящие:

for (let i = 0; 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);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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