gpt4 book ai didi

javascript - Angularjs通过过滤器获取indexOf

转载 作者:行者123 更新时间:2023-11-30 07:34:55 25 4
gpt4 key购买 nike

我有一组后端 API 返回的 JSON 数据,我需要遍历现有数组并获取要在 splice 中使用的 index,因此我我正在使用 indexOf 方法结合 Angular 过滤功能。

我能够从现有数组中过滤出数据,但是我无法获取数组的索引,它返回了 -1

这是怎么做的。

JS

angular.forEach($scope.data, function(){
var index = $scope.Tablelist.indexOf($filter('filter')($scope.Tablelist,{id: $scope.data.id},true));
console.log($filter('filter')($scope.Tablelist,{id: $scope.data.id},true));
console.log(index);
})

最佳答案

$filter 返回一个数组,您需要从中获取第一个元素,然后使用indexOf 进行搜索:

var index = $scope.Tablelist.indexOf(
$filter('filter')($scope.Tablelist,{id: $scope.data.id},true)[0]
);

但是,我只会使用 Array.prototype.findIndex() .它会快得多,因为它不会比需要更多地迭代 Tablelist

var index = $scope.Tablelist.findIndex(function(item) {
return item.id === $scope.data.id;
});

如果你想要更好的浏览器兼容性,或者一个常规的 for 循环:

var index = -1;
for (var i = 0; i < $scope.Tablelist.length; i++)
if ($scope.Tablelist[i].id === $scope.data.id) {
index = i;
break;
}
}

关于javascript - Angularjs通过过滤器获取indexOf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37291302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com