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