Если вы хотите получить id
из headCells
, вы можете получить ключи заранее и сопоставить свойства.
var data = [{ id: 1, name: 'AA', desc: 'DescA', color: 'red' }, { id: 2, name: 'BB', desc: 'DescB', color: 'orange' }, { id: 3, name: 'CC', desc: 'DescC', color: 'green' }, { id: 4, name: 'DD', desc: 'DescD', color: 'blue' }],
headCells = [{ id: 'name', numeric: false, disablePadding: true, label: 'Name' }, { id: 'color', numeric: false, disablePadding: false, label: 'Description' }],
keys = headCells.map(({ id }) => id),
result = data.map(o => Object.assign({}, ...keys.map(k => ({ [k]: o[k] }))));
console.log(result);
Подход с более новыми Object.fromEntries
var data = [{ id: 1, name: 'AA', desc: 'DescA', color: 'red' }, { id: 2, name: 'BB', desc: 'DescB', color: 'orange' }, { id: 3, name: 'CC', desc: 'DescC', color: 'green' }, { id: 4, name: 'DD', desc: 'DescD', color: 'blue' }],
headCells = [{ id: 'name', numeric: false, disablePadding: true, label: 'Name' }, { id: 'color', numeric: false, disablePadding: false, label: 'Description' }],
keys = headCells.map(({ id }) => id),
result = data.map(o => Object.fromEntries(keys.map(k => [k, o[k]])));
console.log(result);