javascript - 将对象推到对象上

标签 javascript arrays javascript-objects

我在将对象推到对象上时遇到问题。我已经成功地将一个数组推送到对象上,但我在前者上失败了。

这是我的

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/

相关文章:

C++ 将数组传递给函数

Javascript:更新对象字段的值

javascript - WPF 离屏 Web 浏览器控件 - 页面加载时的 Javascript 不起作用

javascript - 将 Prototype 代码翻译成 Jquery 版本

javascript - 无法使用 javascript 设置属性

javascript - JQuery 从数组数组中删除数组

javascript - 错误: Can't set headers after they are sent in Node/Express

java - 优化java代码以更少的时间对数组/数组列表进行排序

javascript - 如何在数组数组中连接数组的字符串属性并在每个数组中创建一个新属性

javascript - 对象方法的 Jasmine 测试