我不确定做这件事的最佳方式。例如,我想迭代我的json并找到所有在美国的公司。随着我的应用程序的增长,这个JSON可能会变得更加复杂,比如在级别、对象等方面。我只想知道人们如何使用JSON、Node.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
}]发布于 2016-06-14 12:29:11
将JavaScript原生方法与ES6 arrow function一起使用
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);
发布于 2016-06-14 12:29:07
您可以使用JavaScript的简单.filter()方法返回满足过滤器的结果列表。假设你的数据是可变数据
ES5
data.filter(function(item) {
return item.location.country === 'USA';
});ES6 :在ES6中,您可以使用箭头函数
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);
发布于 2016-06-14 12:30:36
在罗达什,它将是
_.filter(data, function(item) {
return item.location.country === 'USA';
});https://stackoverflow.com/questions/37802940
复制相似问题