Javascript 如何在angularjs中将对象推送到数组?

Javascript 如何在angularjs中将对象推送到数组?,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,这是我的密码 $scope.studentDetails=[]; $scope.studentIds={}; $scope.studentIds[0]{"id":"101"} $scope.studentIds[1]{"id":"102"} $scope.studentIds[2]{"id":"103"} 在上面的代码中,当我选择studentid:101时,我从以下服务中获得了分数 $scope.studentMarks={}; $scope.stude

这是我的密码

$scope.studentDetails=[];

   $scope.studentIds={};
   $scope.studentIds[0]{"id":"101"}
   $scope.studentIds[1]{"id":"102"}
   $scope.studentIds[2]{"id":"103"}
在上面的代码中,当我选择student
id:101
时,我从以下服务中获得了分数

   $scope.studentMarks={};
   $scope.studentMarks[0]{"marks":"67"}
   $scope.studentMarks[1]{"marks":"34"}
接下来,我选择student
id:102
我从诸如

   $scope.studentMarks={};
   $scope.studentMarks[0]{"marks":"98"}
   $scope.studentMarks[1]{"marks":"85"}
最后,我想将学生详细信息存储到一个数组中,如

$scope.studentDetails=[{"id":"101","marks":[67,34]},{"id":"102","marks":[98,85]}] 

使用angularjs。

可以使用将一个对象或concat添加到另一个数组中。请参阅参考资料。

angularJS只是一个扩展Javascript的库。您可以像对待Javascript中的任何对象一样推入数组

首先,您需要声明一个数组

$scope.studentIds = []; // Array of student ids.
然后,当您想要添加时,您可以按下:

$scope.studentIds.push({id: "101"});

看起来这更像是一个JS问题,而不是角度问题

Javascript推送方法呢

$scope.studentDetails.push({id: 101, marks: [67, 34]});

要简单地执行此操作,您需要遍历学生ID,然后遍历marks对象,并在ID匹配时将其添加到studentDetails对象中:

var studentDetails = [];

for (var id in studentIds) {
    var studentDetail = {}; // this will be a single student
    var marks = [];    

    if (studentIds.hasOwnProperty(id)) {
        for (var mark in studentMarks) {
            if (studentMarks.hasOwnProperty(mark) && mark.id === id) {
                studentDetail.id = id;
                marks.push(mark.marks);
            }
        }
        studentDetail.marks = marks;
    }
    studentDetails.push(studentDetail);
}

$scope.studentDetails = studentDetails;

根本不清楚你在这里做什么,甚至不清楚你的问题是什么。显示一些正在创建的对象,然后将其作为数组引用,然后显示一个数组,该数组似乎是其中一个对象加上另一个对象的数组表示形式的乘积。你的语法在这里完全不正常。但是第二次当我选择id=102时,我得到了分数,然后那些学生的分数也推到了同一个数组中。对不起,我不太确定我是否理解<代码>$scope.studentDetails[0].marks.push(74)这可能有用吗?您如何选择id=102?您正在尝试使用学生id作为索引。例如:$scope.studentDetails[102]?谢谢@jamesmpw,现在我有了解决方案