我想在对象中添加一堆属性,每个属性都是一个空数组。我的实现似乎很冗长。
let obj = {};
obj.x = [];
obj.y = [];
obj.z = [];
... ad infinitum
还有其他方法,比如反向对象解构吗?
答案 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)