将对象数组的特殊元素推到另一个对象数组

时间:2019-08-15 17:53:21

标签: javascript arrays object mapping javascript-objects

我有一大堆包含值的对象,也有一个空对象,并且我愿意从整个对象数组中获取每个值(顺便说一句,完整的对象数组比空对象拥有更多的键)然后像这样将其推入一个空的容器:

/*empty one (array1):*/ [{foo: '', bar: '', thumbnail: ''}];

/*full one (array2):*/ [{foo_: 'blah', bar: 'blah',
                       thumbnail: '/photo', id: 'ad12dxa1', something: 'thing'},{foo_: 'blah1', bar: 'blah1',
                       thumbnail: '/photo1', id: 'ad12dxa12', something: 'thing1'}];

,我只想从array2中获取foo_barthumbnail,并将它们分别作为foobarthumbnail插入像这样的array1:foo = foo_ bar = barthumbnail = thumbnail

如果答案将同时包含for循环和array.every方法说明,那会更好。

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以简单地使用.map()和一些Object Destructuring创建一个新数组:

const data = [
  {foo_: 'blah', bar: 'blah', thumbnail: '/photo', id: 'ad12dxa1', something: 'thing'},
  {foo_: 'blah1', bar: 'blah1', thumbnail: '/photo1', id: 'ad12dxa12', something: 'thing1'}
];
                                            
const result = data.map(({foo_:foo, bar, thumbnail}) => ({foo, bar, thumbnail}));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }