说我有这样一个对象:
object_1 = {
a: 10,
b: 5,
c: 15
};
有没有快速创建另一个只有相同键的对象,比如?
object_2 = {
a: 0,
b: 0,
c: 0
}
我知道Object.keys(object_1)
给了我一个带键的数组,但我不知道如何将它们作为新对象中的键分配。
object_2 = Object.assign({}, Object.keys(object_1))
如果我能以某种方式反转那个可行的数组:D
答案 0 :(得分:4)
您可以将Object.assign
与映射对象和spread syntax ...
以及computed property names一起使用。
var object1 = { a: 10, b: 5, c: 15 },
object2 = Object.assign(...Object.keys(object1).map(k => ({ [k]: 0 })));
console.log(object2);

答案 1 :(得分:2)
您可以使用Array#reduce迭代对象的键,并创建一个新对象:
var object_1 = {
a: 10,
b: 5,
c: 15
};
var object_2 = Object.keys(object_1).reduce((o, k) => (o[k] = 0, o), {});
console.log(object_2);

答案 2 :(得分:2)
您可以使用上面的1961
或Unbound droplist
创建一个具有相同键和初始值的新对象,如下所示(这是没有箭头功能和其他与ES6相关的传播操作符)
.reduce