不能從過濾方法返回指數。
The filter() method creates a new array with all elements that pass the test implemented by the provided function.
可以使用forEach
的過濾器()方法創建與通過由提供的功能實現的測試中所有元素的數組。
$scope.indexOfField = function(fieldId) {
var i;
return $scope.model.fieldData.forEach(function(x, index) {
if (x.Id === fieldId) {
i = index;
}
});
// use i
}
甚至更好的使用for
當你發現你的ID,你不能停止的forEach。
$scope.indexOfField = function(fieldId) {
var fieldData = $scope.model.fieldData,
i = 0, ii = $scope.model.fieldData.length;
for(i; i < ii; i++) if(fieldData[i].Id === fieldId) break;
// use i
}
這將遍歷每個元素,而不是在找到正確的元素後停止。 – Jivings 2014-10-20 15:00:27
謝謝。對for循環做了一些更改,它做我想要的 – alsco77 2014-10-20 15:07:51
在遍歷整個數組並且找不到所查找的對象的情況下,「i」可能不是所需的索引 – elachell 2017-06-01 11:10:18