使用Node或ES6从JSON过滤记录

Pos*_*Guy 3 javascript json node.js ecmascript-6

我不确定最好的办法.我想迭代我json,找到所有在美国的公司.这JSON是我的应用程序的增长也可能会方式更加复杂,因为在水平,对象等我只是想知道的方式让人们在做简单的搜索与过滤掉数据子集JSONNode.js和/或ES6或库也许如Lodash等.

所以,例如这个json,有什么方法可以搜索它并且只撤回那些在美国的公司?

[{
    "id": 0,
    "name": "Company1",
    "logoUrl": "/lib/assets/company1-logo.png",
    "location":{
      "country": "USA",
      "state": "California",
      "city": "Napa"
    },
    "active": false
  },
  {
    "id": 1,
    "name": "Company2",
    "logoUrl": "/lib/assets/company2-logo.png",
    "location":{
      "country": "Germany",
      "state": "",
      "city": "Berlin"
    },
    "active": false
  },
  {
    "id": 2,
    "name": "Company3",
    "logoUrl": "/lib/assets/company3-logo.png",
    "location":{
      "country": "USA",
      "state": "Michigan",
      "city": "Detroit"
    },
    "active": false
  }]
Run Code Online (Sandbox Code Playgroud)

Pra*_*lan 7

使用Array#filter带有ES6箭头功能的 JavaScript本机方法

var res = data.filter(v => v.location.country === 'USA');
Run Code Online (Sandbox Code Playgroud)

var data = [{
  "id": 0,
  "name": "Company1",
  "logoUrl": "/lib/assets/company1-logo.png",
  "location": {
    "country": "USA",
    "state": "California",
    "city": "Napa"
  },
  "active": false
}, {
  "id": 1,
  "name": "Company2",
  "logoUrl": "/lib/assets/company2-logo.png",
  "location": {
    "country": "Germany",
    "state": "",
    "city": "Berlin"
  },
  "active": false
}, {
  "id": 2,
  "name": "Company3",
  "logoUrl": "/lib/assets/company3-logo.png",
  "location": {
    "country": "USA",
    "state": "Michigan",
    "city": "Detroit"
  },
  "active": false
}];

var res = data.filter(v => v.location.country === 'USA');

console.log(res);
Run Code Online (Sandbox Code Playgroud)


Adi*_*ngh 4

您可以使用 JavaScript 的简单.filter()方法返回满足过滤器的结果列表。假设您的数据位于可变数据中

ES5

data.filter(function(item) {
  return item.location.country === 'USA';
});
Run Code Online (Sandbox Code Playgroud)

ES6:在 ES6 中,您可以使用箭头函数,与

data.filter((item) => {
  return item.location.country === 'USA';
});
Run Code Online (Sandbox Code Playgroud)

data.filter(function(item) {
  return item.location.country === 'USA';
});
Run Code Online (Sandbox Code Playgroud)