JavaScript对象操作问题

3

目前我正在开发一个ionic应用程序(angular1),并且正在处理一个巨大的对象。

该对象将如下所示:

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个动作和x组。
问题:我想要修改这个对象,但是遇到了几个问题:
问题1:我想要添加训练日程(周一、周三、周五)。
var session = {
        workoutSessionName: sessionName
      };

userWorkouts[1].push(session) 

由于它是一个对象,所以不起作用。还有其他方法可以向对象“push”吗?


1
有问题2还是那是一个错误? - User0123456789
1
为什么你要用递增整数作为键来创建对象?为什么不使用数组呢? - Hamms
同意。workoutSessionsworkoutExerciseListexerciseSets应该都被定义为对象数组,而不是对象。 - Lex
2个回答

3

如果我理解正确,尝试更改为这个。

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) 

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接