在nodejs中过滤JSON数据
filter JSON data in nodejs
我在MEAN框架上工作。我的JSON如下所示:
[{
"restaurant": {
"_id": "55095363649e380e12cc1868",
"name": "Skygarage"
},
"sumSP": 241
}, {
"restaurant": {
"_id": "54e6afe5c1184450416e3118",
"name": "Farmaaish"
},
"sumSP": 3920
},{
"restaurant": {
"_id": "55095363649e380e12cc1868",
"name": "Skygarage"
},
"sumSP": 2333
},{
"restaurant": {
"_id": "55095363649e380e12cc1868",
"name": "Skygarage"
},
"sumSP": 2445
}]
我想根据餐厅过滤sumSP。这样,对于上面的例子,我需要以下过滤数组:
[{
'Skygarage':[241,2333,2445]
},
{
'Farmaaish':[3920]
}]
我已经看到了使用_的解决方案。lodash的位置,但这应该需要过滤属性的值,但在我的情况下,我不知道有多少餐厅将有在我的JSON
有一种方法可以使用lodash:
var data = [{
"restaurant": {
"_id": "55095363649e380e12cc1868",
"name": "Skygarage"
},
"sumSP": 241
}, {
"restaurant": {
"_id": "54e6afe5c1184450416e3118",
"name": "Farmaaish"
},
"sumSP": 3920
},{
"restaurant": {
"_id": "55095363649e380e12cc1868",
"name": "Skygarage"
},
"sumSP": 2333
},{
"restaurant": {
"_id": "55095363649e380e12cc1868",
"name": "Skygarage"
},
"sumSP": 2445
}];
var reduced = _.reduce(data, function (result, value, key) {
console.log(result, value, key);
if (!result[value.restaurant.name]) result[value.restaurant.name] = [];
result[value.restaurant.name].push(value.sumSP);
return result;
}, {});
document.getElementById("result").innerHTML = JSON.stringify(reduced);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.0/lodash.min.js"></script>
<pre id="result"></pre>
相关文章:
- 如何将JSON数据导入我的ejs模板
- 如何将json数据显示为html
- Json数据包含日期和时间格式
- 用我的json数据填充JQuery DataTable
- AngularJS加载JSON数据,然后从中解析/加载HTML
- 使用jquery读取Json数据
- 如何将本地json数据加载到Extjs数据模型中
- 如何使用jquery ajax和jsonp在您自己的域上读取json数据
- React-将jSON数据传递给子组件的子组件
- 尝试从控制器加载带有json数据的Simile时间线
- Jquery:对返回JSON数据的php脚本的Ajax调用
- 如何通过数据分组将json数据转换为嵌套的json数据格式
- 如何在ReactJs中显示Json数据
- 使用javascript进行JSON数据检索
- tu如何将id放在填充了json数据的html表td上
- 将JSON数据从服务器加载到knockout.jsobservable中
- 使用JavaScript处理JSON数据
- 如何将json数据传递到.js文件
- 如何在带有nunjucks和gullow数据的JSON数据中使用带有HTML的内容
- 如何使用var名称调用JSON数据