大家好,我实际上找不到有关将字符串转换为数组的信息,并在检查它们后。我正在尝试检查 usermeta 中是否有这篇文章。在将此字符串转换为数组之前。但它不起作用,为什么?
$scope.like = function(id) {
PostService.GetUserMeta(user).then(function(data) {
var likes = '290 270'
var check_likes = likes.split(" ");
if (check_likes != id) {
$http.jsonp('http://somesite.com/api/userplus/update_user_meta_vars/', {
params: {
like_post: id + ',' + likes,
callback: "JSON_CALLBACK"
}
}).success(function(data) {
console.log('Id added to array');
});
} else {
console.log('ID already in array');
}
})
}
最佳答案
问题出在语句上
if(check_likes != id)
这里check_likes
是一个数组,因此它永远不会等于id
我认为你需要创建一个数字数组。
var check_likes = likes.split(" ").map(Number);
然后你可以使用.indexOf()检查id
是否存在于数组中,它返回在数组中可以找到给定元素的第一个索引,如果不存在则返回-1
。
if (check_likes.indexOf(id) == -1){
$http.jsonp(.....)
}else{
console.log('ID already in array');
}
关于javascript - 检查 Angular 数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40994882/