#javascript
Вопрос:
Я хочу повысить производительность таблицы с большим набором данных, удалив все вложенные объекты, которые таблица не использует. Я не хочу называть ключи, потому что они будут отличаться от набора данных к набору данных. Это должна быть многоразовая вспомогательная функция, которая удаляет объекты на основе typeof
, а не ключа.
Примеры данных:
const data = [ { test: 1, notes: [] }, { test: 2, notes: [] }, { test: 3, notes: [] } ];
ожидаемый результат
[ { test: 1 }, { test: 2 }, { test: 3 } ];
Что я пробовал:
const simpleRows = (arr) =gt; { var rows = arr.map(({ notes, ...keepAttrs }) =gt; keepAttrs); return rows; }; const rows = simpleRows(data) // This works but I have hardcoded the key 'notes' which I don't want
Каков наиболее эффективный способ удаления всех объектов из каждого объекта в массиве объектов в большом наборе данных (~10000 объектов в массиве) без жесткого кодирования ключа и без внешней библиотеки?
Спасибо
Комментарии:
1. вы хотите удалить все свойства, которые являются массивом?
2. @RameshReddy да каждое свойство, представляющее собой массив из каждого объекта
Ответ №1:
Вы можете отфильтровать записи каждого объекта и создать новый объект из отфильтрованных записей:
const data = [ { test: 1, notes: [] }, { test: 2, notes: [] }, { test: 3, notes: [] } ] const result = data.map(obj =gt; Object.fromEntries(Object.entries(obj).filter(([_, v]) =gt; !Array.isArray(v)))) console.log(result)