Удаление объектов из каждого объекта в массиве объектов

#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)