我在将对象推到对象上时遇到问题。我已经成功地将一个数组推送到对象上,但我在前者上失败了。
这是我的
var lapList = [1,2,3,4];
var users = [{sets: [{
reps: []
}]
},
{sets: [{
reps: []
}]
}];
var activeUser = users[0];
var activeSet = activeUser.sets[activeUser.sets.length-1];
activeSet.reps.push({laps: lapList});
console.log('good');
console.log(users);
activeSet.push({reps: [{laps: lapList}]});
console.log('also good');
console.log(users);
我在控制台中看到第一个“good”,我可以看到数组已成功添加到用户。然而,在第二次测试中,我试图添加一个新的代表部分,它失败了,我得到一个 TypeError:undefined is not a function。
有什么想法吗?
最佳答案
我认为您的结构定义不正确:
用户看起来像:
[
{sets: [{reps: []}]},
{sets: [{reps: []}]}
];
这是一个以两个对象为值的数组
activeUser 是数组中的第一个对象,看起来像:
{sets: [{reps: []}]}
activeSet只是代表,一个数组
你的第一个电话:
activeSet.reps.push({laps: lapList});
这会很好,
你的第二个电话:
activeSet.push({reps: [{laps: lapList}]});
这是没有意义的,因为activeSet是reps是一个对象
您可以将其推送到 activeUser.sets,这可能是您真正想要的
activeUser.sets.push({reps: [{laps: lapList}]});
关于javascript - 将对象推到对象上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27261932/