过滤nodejs中的JSON数据

时间:2015-08-03 14:33:39

标签: javascript json node.js

我正在研究MEAN框架。我有JSON如下所示:

    [{
      'Skygarage':[241,2333,2445]
     },
    {
      'Farmaaish':[3920]
    }]

我想根据餐厅过滤sumSP。这样,对于上面的例子我需要跟随过滤后的数组:

Header

我已经看到使用lodash的_.where的解决方案但是这应该需要过滤属性的值,但在我的情况下我不知道我的JSON中会有多少家餐馆。

1 个答案:

答案 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>