gpt4 book ai didi

javascript - 如何只执行一次javascript命令

转载 作者:行者123 更新时间:2023-12-03 12:08:07 26 4
gpt4 key购买 nike

我有一个函数,它调用 HTTP 请求 GET 来比较给定值,以检查它是否与数组中的任何元素匹配。如果没有匹配项,我想将该给定值放入一个数组中,但我的问题是,由于我循环遍历许多元素,当我只需要它显示一个元素时,我会在数组中得到重复项。这是我的代码:

 $scope.fetchParcel = function()
{

$http({
method: 'GET',
url: '/infiniti/' + $scope.infinitiId,
})
.success(function(a){

angular.forEach($scope.parcels, function(parcel, key){
angular.forEach(parcel, function(par){


if(par == $scope.shipper_ref_no){
$scope.scans.push(parcel);
$scope.checked++;

$scope.parcels.splice(key, 1);

}
if(par != $scope.shipper_ref_no){
$scope.excludeds.push($scope.shipper_ref_no);
}


});

});

});

}

在最后一部分中,它说 $scope.excludes.push($scope.shipper_ref_no); 将 Shipper_ref_no 存储到数组中是正确的,但由于数组中有三个元素,当我只需要在检查发现它不匹配任何元素后存储一次时,它实际上存储了shipper_ref_no三次。我该如何实现这个目标?

数组示例:

 [
-{
id: 1
t: "1122"
srn: "23"
}
-{
id: 2
t: "234"
srn: "23"
}
-{
id: 3
t: "dd"
srn: "44"
}
]

如果我的输入是“444kkkddd”,显然没有任何元素匹配,因此它会放入我的数组 444kkkddd 9 次..我只需要它存储一次。不要误会我的意思,我知道为什么它打印了 9 次,但我只需要一个解决方案来只打印一次。我遇到了麻烦。

最佳答案

您可以保留已添加 ID 的列表:

var addedIds = {};

if(par != $scope.shipper_ref_no){
if (!addedIds[$scope.shipper_ref_no]) {
addedIds[$scope.shipper_ref_no] = true;
$scope.excludeds.push($scope.shipper_ref_no);
}
}

关于javascript - 如何只执行一次javascript命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25092115/

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