javascript - 将相同的多个对象推送到多个数组中

标签 javascript jquery arrays json object

这是 Make 3 arrays correspond to each other with the first being the object name 的后续内容。

创建对象后:

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

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

我使用 getJSON 并希望使用这些值插入 array: arr[] 。我有多个具有 arr[] 的对象我想将值(value)观融入到他们所有人中。

这是我到目前为止尝试过的:

$.getJSON(json, result => 
    {result.forEach((elem, i, array) => 
       {object1.arr.push({x:elem.val1, y:elem.val2});
       {object2.arr.push({x:elem.val1, y:elem.val2});
       {object3.arr.push({x:elem.val1, y:elem.val2});
    }) 
 }); 

当我一项一项地执行此操作时,它起作用了。没有错误。有没有办法让我将这些相同的值插入多少 object[i]我有吗?

我尝试过:

 $.getJSON(json, result => 
    {result.forEach((elem, i, array) => 
       (for let j=0; j<=5; j++) {
           {object[i].arr.push({x:elem.val1, y:elem.val2});
       )       
    }) 
 });

当我这样做时,我得到 Cannot call method 'push' of undefined

有没有办法在不使我的代码又长又笨重的情况下做到这一点?

最佳答案

您可以使用数组来存储对象集合,而不是使用 window 动态创建变量,如下所示:

let xyzArr = ["xyz1", "xyz2", "xyz3"];
let theArr = [[], [], []];
let objects = [];

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

然后,当向每个对象添加数据时,您可以在 objects 数组上使用 .forEach() 循环遍历它,如下所示:

$.getJSON(json, result => {
  result.forEach(elem => {
    objects.forEach(obj => {
      obj.arr.push({
        x: elem.val1,
        y: elem.val2
      });
    });
  });
});

关于javascript - 将相同的多个对象推送到多个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57571725/

相关文章:

javascript - 从 codeigniter Controller 发送电子邮件后无法在 jquery 中获得响应

c++ - 将数组保存到二进制文件不工作 C++

c# - json.NET 反序列化 2D 数组时抛出 InvalidCastException

javascript - 循环和数组问题

javascript - Angular.js 不起作用

javascript - window.on.scroll 事件未触发

javascript - 是否可以控制浏览器窗口滚动条的可见性?

javascript - Jquery - Chrome 和 Firefox 中的正则表达式按键操作不同

javascript - 无法执行翻转框

jquery - jquery选择器中的空格是什么意思?