Javascript 使用下划线从数组值筛选json

Javascript 使用下划线从数组值筛选json,javascript,json,filter,Javascript,Json,Filter,我有一个需要创建过滤器的对象数组。该列表包含JSON中的owner\u id属性 目前,我只是循环数组中的所有内容,但是列表不应包含所有者id等于我的filterarray中的一个值的内容: var filter = "[14657612, 2215375794]"; $.ajax({ url: 'myEndPOint', dataType: 'json', success:

我有一个需要创建过滤器的对象数组。该列表包含JSON中的owner\u id属性

目前,我只是循环数组中的所有内容,但是列表不应包含所有者id等于我的filterarray中的一个值的内容:

var filter = "[14657612, 2215375794]";

            $.ajax({
                url: 'myEndPOint',
                dataType: 'json',
                success: function(data) {
                    var media = data.media;
                    var arr = [];

                    _.filter(media, function(val){
                         //The magic should happen here, only return items that has'nt got an val.owner_id that is in "filter" array
                    });

                    for(i=0; i < media.length; i++) {
                        var thumb = media[i].thumbnail;
                        var html = "<li><img src=" + thumb + " /></li>";
                        arr.push(html);
                    }
                    $(".social-ribbon-target").append(arr);
                    $(".loading").css("display", "none");*/

                },
                error: function(error) {
                    console.log("error");
                }
            });
var filter=“[14657612,2215375794]”;
$.ajax({
url:“myEndPOint”,
数据类型:“json”,
成功:功能(数据){
var media=data.media;
var-arr=[];
_.过滤器(介质、功能(val){
//神奇的事情应该发生在这里,只返回没有“filter”数组中的val.owner_id的项目
});
对于(i=0;i”;
arr.push(html);
}
$(“.social ribbon target”).append(arr);
$(“.loading”).css(“显示”、“无”)*/
},
错误:函数(错误){
控制台日志(“错误”);
}
});
魔法应该发生在这里

它实际上不是魔术,而是一个函数,返回
true
false
项是否应该在返回的数组中

假设您的过滤器是一个数组,而不是现在的字符串(否则您必须使用
filter\u arr=JSON.parse(filter)
)对其进行解析),您可能希望这样编写过滤函数:

var过滤器=[“一”、“二”、“三”];
var media=[{owner_id:“one”}];
console.log(u.filter(介质、函数(项)){
返回filter.indexOf(item.owner\u id)>=0;
}))

您定义的
过滤器具有字符串,而不是数组

更改:

var filter = "[14657612, 2215375794]";
致:


检查这一个作为参考。您的过滤器不是数组,而是stringHmm,但它与任何内容都不匹配?\。筛选器(媒体,函数(项){console.log(filter.indexOf(item.owner\u id))返回filter.indexOf(item.owner\u id)>=1;});尽管如此,有些it项目的item.owner\u id是筛选器数组中的某个内容?为什么将其更改为>=1?您是否已相应地将字符串解析为数组?呜呜,键入错误。。。但是,如果数组或元素索引中不存在元素,则所有内容都返回false或-1?indexOf返回-1
var filter = [14657612, 2215375794];