【发布时间】:2019-12-25 13:23:25
【问题描述】:
这是对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[] 的对象,我想将值推送到所有对象中。
这是我迄今为止尝试过的:
$.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。
有没有办法做到这一点而不会使我的代码又长又笨重?
【问题讨论】:
-
我很惊讶
object1.data.push在data未在object1上定义时有效? -
那是我的错。让我修复代码。我在这里输入时忘记修复它
-
制作一个 jsFiddle 来演示这个问题。与您从真实代码中改编的已经有问题的 js 相比,调试起来会容易一千倍。
标签: javascript jquery arrays json object