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

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

阅读 2.7k
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] = {};
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题