gpt4 book ai didi

javascript - 使用下划线过滤以下 JSON

转载 作者:行者123 更新时间:2023-11-29 10:44:50 27 4
gpt4 key购买 nike

我有一个这样的集合:

    var collection={
"Today": [{
"id": "1",
"name": "iPod Nano",
"image": "img/items/item1.jpg",
"special": 0
}, {
"id": "2",
"name": "Samsung TV",
"image": "img/items/item2.jpg",
"special": 1
}],
"Monday 11 August 2014": [{
"id": "3",
"name": "Nikon Camera",
"image": "img/items/item3.jpg",
"special": 0

}, {
"id": "4",
"name": "iPad 1000",
"image": "img/items/item4.jpg",
"special": 0

}],

"Monday 30 August 2014 ": [{

"id": "5",

"name": "ar of Gold",
"mage": "img / items / item5.jpg ",
"special ": 1

}, {
"id ": "6 ",
" name ": "Buzz Light Year ",
"image ": " img / items / item6.jpg ",
"special ": 1

}]

};

我想过滤集合并只保留特殊 == 1 :

我试过:

 var Specials=_.reduce(collection,function(memo,item){
var result = _.filter(item,function(c){
return c.special==0 ;
});
if(result.length > 0 ){
var newResult = {};
newResult.deals = result;
newResult.id = item.id;
memo = _.union(memo,newResult);
}
return memo;
},[]);
var jsonText=JSON.stringify(Specials);

console.log("=========>" + jsonText);

但没有得到我所期望的。

为什么?我希望结果是这样的:

var filtered={
"Today": [{
"id": "2",
"name": "Samsung TV",
"image": "img/items/item2.jpg",
"special": 1
}],

"Monday 30 August 2014 ": [{

"id": "5",

"name": "ar of Gold",
"mage": "img / items / item5.jpg ",
"special ": 1

}, {
"id ": "6 ",
" name ": "Buzz Light Year ",
"image ": " img / items / item6.jpg ",
"special ": 1

}]

};

最佳答案

我记得 reduce 有一些其他的功能,

如果需要保持相同的 JSON 结构,可以使用 each + reject fiddle

_.each(collection, function(items, key){

var filtered = _.reject(items, function(item){
return item.special < 1
});

if(filtered.length){
specials[key] = filtered;
}
});

关于javascript - 使用下划线过滤以下 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21771535/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com