我想循环访问JSON响应,检查key和value是否存在,如果不存在,则将其添加到数组中。检查obj是否存在并推送到数组
$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。
有没有办法阻止代码添加额外的键值,如果它已经存在?
是的,你可以先检查对象的数组是否存在的关键。 – choz
http://stackoverflow.com/questions/1098040/checking-if-a-key-exists-in-a-javascript-object如何检查 –