添加到JS对象的有效方法?

时间:2016-06-16 09:09:34

标签: javascript ecmascript-6

我想在对象中添加一堆属性,每个属性都是一个空数组。我的实现似乎很冗长。

let obj = {};
obj.x = [];
obj.y = [];
obj.z = [];

... ad infinitum

还有其他方法,比如反向对象解构吗?

3 个答案:

答案 0 :(得分:3)

你可以尝试

var obj = {};
var keys = [ "x", "y", "z" ];
keys.forEach( function( val ){ 
  obj[ val ] = []; 
});

答案 1 :(得分:2)



let obj = {};

for(let key of "xyz")
    obj[key] = []

console.log(obj)




答案 2 :(得分:0)

另一种方法是在一行中完成

var obj = ['x', 'y', 'z'].reduce((obj, key) => (obj[key] = [], obj), {})

然后它可以重复使用



var fn = (obj, key) => (obj[key] = [], obj);
var dest = {};

var same = ['x', 'y', 'z'].reduce(fn, dest)

console.log(dest)
console.log(same === dest)