javascript - 检查 Angular 数组中的值

标签 javascript angularjs arrays

大家好,我实际上找不到有关将字符串转换为数组的信息,并在检查它们后。我正在尝试检查 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/

相关文章:

javascript - 如何在 AngularJS 中存储用户 session ?

javascript - 通过将键值设置为对象的属性之一来修改 JavaScript 中的对象数组

c - 运行时数组初始化

asp.net - 根据菜单选择更改菜单的背景颜色

javascript - Harmony代理,检测属性是否被访问或调用

javascript - 当我在 mysql 中存储 JavaScript 变量时,它如何链接到当前用户的 ID?

html - 如何使用 Angular 确定 html 表的第一行?

javascript - 实数的 ng-pattern 正则表达式

javascript - 对象数组上的 JS .splice()

javascript 将文本添加到发送到数据库的字符串