You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS使用forEach遍历数组时push前如何过滤重复id值

方案1:ES6 Set 一键去重(推荐现代浏览器环境使用)

代码最简洁,直接提取所有id后通过Set去重:

// 一行代码完成提取+去重
$scope.myNewarray = [...new Set($scope.categoryList.map(item => item.id))];

如果不想改原有遍历逻辑,也可以在你现有代码后补充一行去重:

angular.forEach($scope.categoryList, function (object) {
    $scope.myNewarray.push(object.id);
});
// 新增下面这行去重即可
$scope.myNewarray = [...new Set($scope.myNewarray)];

方案2:遍历过程中判断去重(兼容低版本浏览器,比如IE11)

如果项目需要兼容不支持ES6 Set的旧环境,可以在push前先判断id是否已存在:

$scope.myNewarray = [];
angular.forEach($scope.categoryList, function (object) {
    // 不存在对应id时才执行push
    if ($scope.myNewarray.indexOf(object.id) === -1) {
        $scope.myNewarray.push(object.id);
    }
});

两种方案最终得到的$scope.myNewarray都是你需要的[44,76,77]格式。

内容的提问来源于stack exchange,提问作者Kumara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 08:24:05