首页 > 解决方案 > 使3个数组相互对应,第一个为对象名称

问题描述

我目前有多个对象,如下所示:

let object1 = {
     xyz: 'xyz1',
     arr: []
    },
    object2 = {
     xyz: 'xyz2',
     arr: []
    },
    object3 = {
     xyz: 'xyz3',
     arr: []
    }

这变得非常冗长和多余。无论如何我可以创建3个数组,例如:

let objName = ["object1", "object2", "object3"]
let xyzArr = ["xyz1", "xyz2","xyz3"]
let theArr = [[], [], [] ]

反正有没有相互对应?

标签: javascriptjqueryarraysobject

解决方案


我不确定你在问什么,但这将采用 3 个数组并将对象存储在window

let objName = ["object1", "object2", "object3"];
let xyzArr = ["xyz1", "xyz2","xyz3"];
let theArr = [[], [], []];

objName.forEach((name, index) => {
  window[name] = {
    xyz: xyzArr[index],
    arr: theArr[index]
  };
});

console.log(object1);
console.log(object2);
console.log(object3);

我建议使用命名空间而不是使它们成为全局的(更多内容在这里),但我想这可行吗?


推荐阅读