使用Node或ES6从JSON过滤logging

我不确定最好的方式去做这件事。 我想迭代我的json并find所有在美国的公司。 这个JSON可能会随着我的应用程序的增长而变得更加复杂,就像在关卡,对象等等一样。我只是想知道人们在简单地search用JSONNode.js和/或ES6或库过滤掉数据子集的方法也许如Lodash

比如说这个JSON,我可以通过什么方式search它,并且只撤回在美国的那些公司呢?

 [{ "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 }] 

使用带ES6箭头function的 JavaScript本机Array#filter方法

 var res = data.filter(v => v.location.country === 'USA'); 
 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); 

在lodash它将是

 _.filter(data, function(item) { return item.location.country === 'USA'; }); 

您可以使用JavaScript的简单.filter()方法返回满足filter的结果列表。 说你的数据是可变数据

ES5

 data.filter(function(item) { return item.location.country === 'USA'; }); 

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

 data.filter((item) => { return item.location.country === 'USA'; }); 
 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 res1 = data.filter(function(item) { return item.location.country === 'USA'; }); const res2 = data.filter((item) => { return item.location.country === 'USA'; }); console.log(res1); console.log(res2); 

您可以使用本机过滤function。

 const items = [{ "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 }] const usItems = items.filter(v => v.location.country === 'USA')