我正在研究MEAN框架。我有JSON如下所示:
[{
'Skygarage':[241,2333,2445]
},
{
'Farmaaish':[3920]
}]
我想根据餐厅过滤sumSP。这样,对于上面的例子我需要跟随过滤后的数组:
Header
我已经看到使用lodash的_.where的解决方案但是这应该需要过滤属性的值,但在我的情况下我不知道我的JSON中会有多少家餐馆。
答案 0 :(得分:1)
这是使用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>