js动态创建固定名称的对象

如初
  • 69

很简单的问题,但是想了半天没有解决方案...
已知数组arr=['aa','bb','cc','dd']
现在要创建四个空对象,以数组的每一项命名
aa={},bb={},cc={},dd={}
怎么实现啊?

回复
阅读 1.6k
4 个回答
const arr = ['aa', 'bb', 'cc'];
const {
    aa,
    bb,
    cc
} = arr.reduce((res, pre) => {
    res[pre] = {};
    return res;
}, {})
console.log(aa);
console.log(bb);
console.log(cc);

这是全局的变量。如果你想要别的改window就好

arr.forEach(name=>{
    window[name]={}
})

这个要看你准备怎么用这些变量名的对象。

var mObj={};
const arr = ['aa', 'bb', 'cc'];
arr.forEach(n=>{
    mObj[n]={};
})
// 这样可以利用 mObj[]的形式访问到,也可以直接利用window对象来存储,不过访问时一样只能采用window[]语法来访问,因为变量名如果没有预先定义,不好直接从数组中提取使用。
// 还需要注意这里的arr数组对象成员是字符串才行。
for (const name of arr) {
  globalThis[name] = {};
}
宣传栏