使用Node或ES6从JSON过滤logging
我不确定最好的方式去做这件事。 我想迭代我的json
并find所有在美国的公司。 这个JSON
可能会随着我的应用程序的增长而变得更加复杂,就像在关卡,对象等等一样。我只是想知道人们在简单地search用JSON
和Node.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')