我有一个用例,我需要使用underscore.js来过滤JSON。例如
{"test":{
{ key: 1,country:USA,product:A,price:200}
{key: 1,country:USA,product:B,price:200}
{key: 1,country:UK,product:B,price:300}
}
}
我有相同密钥的多个维度。当我过滤USA
时,我需要得到如下输出{"test":{
{ key: 1,country:USA,price:400}
}
}
当我过滤产品B时
{"test":{
{ key: 1,product:B,price:500}
}
}
我想使用underscore.js来实现它,因为我相信它与纯JS选项相比很快。
答案 0 :(得分:0)
首先,尝试使用下划线_.filter来应用您的条件(如产品或国家/地区)进行搜索。
然后根据过滤器的结果进行聚合,只需使用_.each函数。
最后,您可以在_.map函数中操作结果。
我在这里发布了jsfiddle链接,它可能对你有帮助
jsfiddle.net/zusquang/39os1854/
我希望得到这个帮助。
答案 1 :(得分:0)
我假设你有一个拼写错误,测试包含一个对象数组:
var filtered = JSON.parse(jsonString).test.filter(function(item) { return item.country == 'USA' });
var total = 0;
filtered.forEach(function(item) {
total += item.price
});
不要担心速度,这将是微优化,不推荐使用。