[英]filter json from array values with underscore
我有一個對象數組,需要在其上創建過濾器。 該列表在JSON中包含一個owner_id屬性...
目前,我只是循環訪問數組中的所有內容,但是該列表不應該使用owner_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");
}
});
魔術應該在這里發生
實際上這不是魔術,而是一個返回true
或false
的函數,該項目是否應位於返回的數組中。
假設您的過濾器是一個數組,而不是現在的字符串(否則您必須使用filter_arr = JSON.parse(filter)
對其進行解析),您可能想要編寫如下的過濾函數:
var filter = ["one", "two", "three"]; var media = [{owner_id: "one"}]; console.log(_.filter(media, function(item){ return filter.indexOf(item.owner_id) >= 0; }))
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
您定義的filter
具有字符串,而不是數組。
更改:
var filter = "[14657612, 2215375794]";
至:
var filter = [14657612, 2215375794];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.