使用ES6中的数组中设置的属性从现有对象创建新对象

时间:2017-09-06 09:12:03

标签: javascript arrays object ecmascript-6

我有这样的对象:

let origObj = {
   name: 'John',
   surname: 'Doe',
   age: 23,
   gender: 'M'
}

我想创建一个具有属性的新对象,在数组中设置

let fieldsList = ['name', 'gender'];

新对象可能如下所示:

newObj = {
   name: 'John',
   gender: 'M'
}

我回答了下面的问题,但也许您有更好的解决方案来解决这个问题,例如:使用ES6还是别的什么?

1 个答案:

答案 0 :(得分:0)

您可以使用array#reduce



let origObj = {
   name: 'John',
   surname: 'Doe',
   age: 23,
   gender: 'M'
}

let fieldsList = ['name', 'gender'];

var newObject = fieldsList.reduce((obj,prop) => {
return obj[prop]= origObj[prop], obj 
} ,{});

console.log(newObject);