使用Underscore.js过滤和合并json

时间:2016-10-18 03:54:10

标签: javascript json underscore.js

我有一个用例,我需要使用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选项相比很快。

2 个答案:

答案 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
});

不要担心速度,这将是微优化,不推荐使用。