Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.03.2019, 11:37
Новичок на форуме
Отправить личное сообщение для fcsm_andrei Посмотреть профиль Найти все сообщения от fcsm_andrei
 
Регистрация: 14.02.2019
Сообщений: 5

Многомерные массивы (удаление элементов)
Здравствуйте, как можно удалить пустые элементы многомерного массива, и, если массив окажется пустым, его тоже соответственно удалить?
Допустим дан массив
arr = [[1, empty, 3, 4, 5, empty], [empty, 2, 3, 4, 5 ,234, empty], [empty, empty, empty, empty]].
Ответить с цитированием
  #2 (permalink)  
Старый 22.03.2019, 13:09
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

var empty = null;
var arr = [[1, empty, 3, 4, 5, empty], [empty, 2, 3, 4, 5 ,234, empty], [empty, empty, empty, empty]];
for(var i = arr.length - 1; i > -1; i--) {
    for(var j = arr[i].length - 1; j > -1; j--) {
        if(!arr[i][j]) arr[i].splice(j,1);
    }
    if(arr[i].length == 0) arr.splice(i,1);
}
alert(JSON.stringify(arr));
Ответить с цитированием
  #3 (permalink)  
Старый 22.03.2019, 13:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

fcsm_andrei,
let arr = [[1, , 3, 4, 5, ], [, 2, 3, 4, 5 ,234, ], [, , , ]];
function f(c) {
    return c.reduce(function(b, a) {
        Array.isArray(a) ? (a = f(a), a.length && b.push(a)) : void 0 !== a && b.push(a);
        return b;
    }, []);
};

let c = f(arr);
console.log(c)
Ответить с цитированием
  #4 (permalink)  
Старый 22.03.2019, 14:13
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

let arrs = [[1, , 3, 4, 5,], [, 2, 3, 4, 5, 234,], [, , ,]];
console.log(
  arrs.reduce((acc, cur) => {
    let items = cur.filter(item => item !== null)
    items.length && acc.push(items)
    return acc
  }, [])
)

Последний раз редактировалось SuperZen, 22.03.2019 в 14:14. Причина: hohoho
Ответить с цитированием
  #5 (permalink)  
Старый 23.03.2019, 14:52
Аватар для почты прочую обяза ниже.
Интересующийся
Отправить личное сообщение для почты прочую обяза ниже. Посмотреть профиль Найти все сообщения от почты прочую обяза ниже.
 
Регистрация: 23.03.2019
Сообщений: 11

arr.map(i => i.filter(j => j !== null)).filter(k => k.length)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление и восстанавелние элементов (jquery) saper333 Общие вопросы Javascript 12 26.11.2015 15:23
Удаление и восстанавелние элементов (jquery) saper333 Общие вопросы Javascript 5 23.11.2015 15:50
Динамическая форма. Удаление элементов. Demonuka Элементы интерфейса 2 21.04.2014 20:32
Массивы. Динамическое удаление элементов userbanderas Элементы интерфейса 2 06.01.2012 23:29
Удаление элементов через splice. возможно ли оптимизировать? Storan Общие вопросы Javascript 0 01.10.2011 21:16