我在Angular中有一个循环数组的函数:
$scope.things = [{ num: 4 }, { num: 2 }];
$scope.specialThings = [];
$scope.doThings = function() {
for (var i = 0; i < things.length; i++) {
// do some things
}
$scope.specialThings = $scope.things.filter(function(x) {
return x.num > 2;
});
console.log($scope.specialThings);
};
for循环正在改变我的num
数组中项目的things
属性。
然后我使用该过滤器函数来隔离things
的特殊子集。当所有项目都不符合我的过滤条件时,console.log
会打印Array[0]
。但是,当某些项目匹配时,我会得到以下内容:
[Object]
length: 0
__proto__: Array[0]
我不知道发生了什么。救命啊!
答案 0 :(得分:0)
如果没有jsfiddle中的运行示例,很难说出问题是什么,但我怀疑它在for循环中的things.length之前缺少$ scope会导致无声错误。所以你的过滤器永远不会执行。
试试这个:
$scope.doThings = function() {
for (var i = 0; i < $scope.things.length; i++) {
// do some things
}
$scope.specialThings = $scope.things.filter(function(x) {
return x.num > 2;
});
console.log($scope.specialThings);
};