JavaScript对象操作问题
目前,我正在开发一款ionic应用程序(angular1),我正在开发一个巨大的对象 对象将如下所示:JavaScript对象操作问题,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,目前,我正在开发一款ionic应用程序(angular1),我正在开发一个巨大的对象 对象将如下所示: userWorkouts: [ { title: '3 Split', id: 1, workoutImg: '', workoutSessions: { 1: { workoutSessionName: 'Monday', workoutExerciseList: { 1: {
userWorkouts: [
{
title: '3 Split',
id: 1,
workoutImg: '',
workoutSessions: {
1: {
workoutSessionName: 'Monday',
workoutExerciseList: {
1: {
exerciseName: "Pull Ups",
exerciseSets: {
1: 20,
2: 12,
3: 8
}
},
2: {
exerciseName: "Pull Ups",
exerciseSets: {
1: 20,
2: 12,
3: 8
}
}
}
}
}
},
{
title: 'Kraftausdauer Teil 1',
id: 2,
workoutImg: ''
},
{
title: 'Kraftausdauer Teil 2',
id: 3,
workoutImg: ''
},
{
title: '7 Minuten Training',
id: 4,
workoutImg: ''
},
{
title: 'Workout Zuhause',
id: 5,
workoutImg: ''
}
]
例如:一个用户有x个训练。每项训练有x次训练(周一、周三、周五)。课程还包括x套练习
问题:我想修改此对象,但有几个问题:
问题:我想添加会话(周一、周三、周五)
不起作用,因为它是一个对象。是否有其他方法“推送”对象?不确定是否需要使用1。数组或2。
workoutSessions的对象
您可以使用数组来保存workoutSessions
而不是对象,因为您已经使用整数作为键,然后只需使用push()添加即可
检查角度。延伸
下面是选项2的一个例子:
如果我明白了,试着改变一下
userWorkouts: [
{
title: '3 Split',
id: 1,
workoutImg: '',
workoutSessions: [{
{
workoutSessionName: 'Monday',
workoutExerciseList: [{
1: {
exerciseName: "Pull Ups",
exerciseSets: {
1: 20,
2: 12,
3: 8
}
},
2: {
exerciseName: "Pull Ups",
exerciseSets: {
1: 20,
2: 12,
3: 8
}
}
}
}
]
}
},
{
title: 'Kraftausdauer Teil 1',
id: 2,
workoutImg: ''
},
{
title: 'Kraftausdauer Teil 2',
id: 3,
workoutImg: ''
},
{
title: '7 Minuten Training',
id: 4,
workoutImg: ''
},
{
title: 'Workout Zuhause',
id: 5,
workoutImg: ''
}
]
像这样使用
var session = {
workoutSessionName: sessionName
};
userWorkouts[1].workoutSessions.push(session)
这是问题2还是错误?为什么要用递增整数作为键的对象?为什么不使用数组?同意workoutSessions
、workoutExerciseList
和exerciseset
都应定义为对象数组,而不是对象数组。
var session = {
workoutSessionName: sessionName
};
userWorkouts[1].workoutSessions.push(session)