过滤nodejs中的JSON数据

我正在研究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] }] 

我已经看到使用_的解决scheme,但这应该需要过滤的属性值,但在我的情况下,我不知道有多less餐馆将在我的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>