JavaScript 对象操作问题

JavaScript Object Manipulation Questions

本文关键字:问题 操作 对象 JavaScript      更新时间:2023-09-26

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

不起作用,因为它是一个对象。有没有另一种方法可以"推送"到对象?

如果我理解,请尝试更改为此。

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. 数组或 2. 对象workoutSessions

  1. 您可以使用数组而不是对象来保存workoutSessions因为您已经使用整数作为键,然后只需使用push()添加
  2. 检查angular.extend https://docs.angularjs.org/api/ng/function/angular.extend

这是选项 2 的提示:https://plnkr.co/edit/x0isJdzXHq2gX7vfsQdG?p=preview