@cester

Как убрать из объекта пустые объекты, js?

Как очистить объект от пустых объектов?
Есть такой объект
const data = {
        item: [],
        item1: [
          {
            id: '1',
            name: 'name1',
          },
        ],
        item2: [
          {
            id: '2',
            name: 'name12',
          },
        ],
        item3: [
          {
            id: '3',
            name: 'name3',
          },
        ],
        item4: [],
        item5: [],
      };

Нужно сделать из него такое
const data2 = {
        item1: [
          {
            id: '1',
            name: 'name1',
          },
        ],
        item2: [
          {
            id: '2',
            name: 'name12',
          },
        ],
        item3: [
          {
            id: '3',
            name: 'name3',
          },
        ],
      };


Хочу как можно короче это сделать.
Можно использовать Lodash.
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Собрать новый объект:

const newData = Object
  .entries(data)
  .filter(n => n[1].length)
  .reduce((acc, n) => (acc[n[0]] = n[1], acc), {});

Удалить свойства существующего:

Object.keys(data).forEach(n => data[n].length || delete data[n]);

Можно использовать Lodash.

const newData = _.pickBy(data, n => n.length);

// или

_.each(data, (v, k) => v.length || delete data[k]);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы