2016-03-18 101 views
4

目前我正在研究一個離子應用程序(angular1),我正在研究一個巨大的對象。JavaScript對象操作問題

該對象將看起來像這樣:

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: '' 
    } 
] 

對於實施例:A用戶讓X鍛鍊。每次鍛鍊都有x次會話(週一,週三,週五)。一個會話也有x個練習x組。

問題:我想修改該對象和我有幾個問題:

問題:我想補充會議(星期一,星期三,星期五)。

var session = { 
     workoutSessionName: sessionName 
     }; 

userWorkouts[1].push(session) 

不起作用,因爲它是一個對象。有沒有另一種方式來「推」到一個對象?

+1

是否有問題2或者是一個錯誤? – User0123456789

+1

爲什麼你有遞增整數的對象作爲鍵?爲什麼不使用數組? – Hamms

+0

同意。 'workoutSessions','workoutExerciseList'和'exerciseSets'都應該被定義爲對象數組,而不是對象。 – Lex

回答

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)