gpt4 book ai didi

javascript - 检查 obj 是否存在并推送到数组

转载 作者:行者123 更新时间:2023-12-03 05:11:32 25 4
gpt4 key购买 nike

我想迭代 JSON 响应,检查键、值是否存在,如果不存在,则将其添加到数组中。

  $scope.InitProdToArray = function (data) {
angular.forEach($scope.data.obj.Product, function(value, index) {

if (value.Product_type != 'T' ) {
$scope.data.obj.Product.push({Product_type: 'T'});
}
if (value.Product_type != '16364NB' ) {
$scope.data.obj.Product.push({Product_type: '16364NB'});
}
if (value.Product_type != '39087NB' ) {
$scope.data.obj.Product.push({Product_type: '39087NB'});
}
if (value.Product_type != 'C' ) {
$scope.data.obj.Product.push({Product_type: 'C'});
}
if (value.Product_type != '4NB' ) {
$scope.data.obj.Product.push({Product_type: '4NB'});
}
});

JSON: $scope.data.obj.Product =
[{
"Count": 28,
"Product_type": "T"
}, {
"Count": 88,
"Product_type": "4NB"
}, {
"Count": 20,
"Product_type": "C"
}, {
"Count": 3,
"Product_type": "39087NB"
}
]

这似乎不起作用,因为每次迭代每个节点时我都会推送键值对。我最终得到了一个具有多个相同的product_type 的JSON。

是否有办法阻止代码添加额外的键、值(如果已经存在)?

最佳答案

你的类型检查似乎写反了。而不是 if (value.Product_type != 'T' ) {... 我会想象类似 if (value.Product_type == 'T' ) {... code> 这样,仅当类型匹配时,您才会推送到 Product 数组。

除此之外,您还可以在推送之前检查 Product 数组是否已包含该类型的键: if($scope.data.obj.Product.indexOf(value. Product_type)!==未定义)

关于javascript - 检查 obj 是否存在并推送到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41799820/

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