我想遍历从服务器上的REST服务收到的学生列表。此列表包含在部分中注册的学生的对象。每个对象都有firstName,lastName,student ID和许多其他属性,特别是名为isAbsent
的属性。它是一个布尔值,如果学生缺席则为真,如果学生不在场,则为假。我想将不在的学生ID(有isAbsent=true
)存储在另一个String Array中。
我试过了:
{
//this array will store the IDs of students who are absent.
$scope.selection = [];
//$scope.studentList is the list of students for CRN=X and Date=Y
for (id in $scope.studentList) {
if ($scope.studentList.isAbsent === true) {
$scope.selection.push($scope.studentList.id);
console.log($scope.selection);
}
}
}
此代码无法执行。我不知道为什么,我猜循环结构中的问题。有什么帮助吗?
答案 0 :(得分:3)
也许这会有所帮助?
for (var i=0;i<$scope.studentList.length;i++)
{
if ($scope.studentList[i].isAbsent === true)
{
$scope.selection.push($scope.studentList[i].id);
console.log($scope.selection);
}
}
P.S。不要将for..in
与数组一起使用。它将显示索引而不是值。它不像C#。
答案 1 :(得分:3)
根据您需要支持的浏览器(例如IE&gt; = 9),我建议使用较新的foreach
construct。我发现它更容易使用:
$scope.studentList.forEach(function(value, index, array) {
if (value.isAbsent === true)
{
$scope.selection.push(value.id);
console.log($scope.selection);
}
});