gpt4 book ai didi

javascript - Angular forEach 与 json 的比较?

转载 作者:行者123 更新时间:2023-11-30 15:56:28 25 4
gpt4 key购买 nike

所以我有一个输入字段,可以从 json1 中获取数据。在提交时,我希望将该输入值与来自 json2 的数据进行比较,并根据结果做不同的事情,但我无法解决这个问题,因为我无法破坏 forEach。我的代码正在执行,但它一直在执行,而不是在相应的 if 语句上停止。

我看到有几个线程在谈论使用 for-loop 代替,但也没有运气。有什么想法吗?

我想要这样的东西:

$scope.superButton = function() {
$http.get(superUrl)
.then(function(res) {

angular.forEach(res.data, function(item) {
// If supertag exists, add to it
if ($scope.id == item.tag.tag_id) {
console.log('yay, tag is now supertag');

$http({
method: 'PUT',
url: superUrl,
headers: {
'Content-Type': 'application/json'
},
data: {
'title': $scope.title,
'subtitle': $scope.subtitle,
'tag': {
'title': $scope.selected,
'tag_id': $scope.id
}
}
}).then(function(data, status, headers, config, statusText) {
console.log('added EXISTING supertag:' + data.statusText);

}).catch(function(err) {
console.log(err.data.message);
});
}
// If supertag doesn't exist, create it
else if ($scope.id != item.tag.tag_id) {
$http({
method: 'POST',
url: superUrl,
headers: {
'Content-Type': 'application/json'
},
data: {
'title': $scope.title,
'subtitle': $scope.subtitle,
'tag': {
'title': $scope.selected,
'tag_id': $scope.id
}
}
}).then(function(data, status, headers, config, statusText) {
console.log('added NEW supertag: ' + data.statusText);

}).catch(function(err) {
console.log(err.data.message);
});
}
// If
else {
console.log('no tags');
}
});
});

};

最佳答案

您可以使用 JavaScript Array.prototype.filter()验证 $http.get() 响应是否包含 supertag:

$scope.superButton = function() {
$http.get(superUrl)
.then(function(res) {
var len = res.data.filter(function(item) {
return $scope.id === item.tag.tag_id;
}).length,
method = (len) ? 'PUT' : 'POST',
segmentUrl = (len) ? '/' + $scope.id : '',
msg = (len) ? 'EXISTING supertag: ' : 'NEW supertag: ';

$http({
method: method,
url: superUrl + segmentUrl,
headers: {
'Content-Type': 'application/json'
},
data: {
'title': $scope.title,
'subtitle': $scope.subtitle,
'tag': {
'title': $scope.selected,
'tag_id': $scope.id
}
}
})
.then(function(data, status, headers, config, statusText) {
console.log(msg + data.statusText);
})
.catch(function(err) {
console.log(err.data.message);
});
});
};

关于javascript - Angular forEach 与 json 的比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38454080/

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