JavaScript对象操作问题

时间:2016-03-18 18:16:07

标签: javascript angularjs ionic-framework

目前我正在开发一个离子应用程序(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套。

问题:我想修改这个对象,但我遇到了一些问题:

问题:我想添加会话(星期一,星期三,星期五)。

var session = {
        workoutSessionName: sessionName
      };

userWorkouts[1].push(session) 

不起作用,因为它是一个对象。还有另一种“推”到对象的方法吗?

2 个答案:

答案 0 :(得分:3)

如果我理解,请尝试改变这一点。

var session = {
        workoutSessionName: sessionName
      };

userWorkouts[1].workoutSessions.push(session) 

并像这样使用

{{1}}

答案 1 :(得分:1)

不确定是否需要使用1. array或2. object workoutSessions

  1. 您可以使用数组来保存workoutSessions而不是对象,因为您已经使用整数作为键,然后使用push()
  2. 添加
  3. 检查angular.extend https://docs.angularjs.org/api/ng/function/angular.extend
  4. 这是选项2的插件: https://plnkr.co/edit/x0isJdzXHq2gX7vfsQdG?p=preview