这是 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/