我有以下示例 JSON,并且想要检索与特定 address_components.types
匹配的结果。我尝试的方法成功检索了结果,但它将包含一些空数组。如何编辑它以仅返回 2 个匹配的数组,而不返回 4 个空数组?最好采用 ES5 语法。
var sample = {
"results": [{
"address_components": [{
"long_name": "33",
"short_name": "33",
"types": [
"street_number"
]
}, {
"long_name": "Parking Road",
"short_name": "Parking Road",
"types": [
"route"
]
}, {
"long_name": "Welling Park",
"short_name": "Welling Park",
"types": [
"political",
"sublocality",
"sublocality_level_1"
]
}, {
"long_name": "Jill Town",
"short_name": "JT",
"types": [
"locality",
"political"
]
}, {
"long_name": "Perak",
"short_name": "Perak",
"types": [
"administrative_area_level_1",
"political"
]
}, {
"long_name": "Malaysia",
"short_name": "MY",
"types": [
"country",
"political"
]
}, {
"long_name": "46666",
"short_name": "46666",
"types": [
"postal_code"
]
}]
}]
}
var filtered = sample.results[0].address_components.map(function(address) {
return address.types.filter(function(type) {
return type === 'route' || type === 'sublocality_level_1'
}).map(function() {
return address;
});
})
console.log(filtered);
最佳答案
首先过滤出您想要的内容!
var filtered = sample.results[0].address_components.filter(function(address) {
return address.types.indexOf('route') > -1 || address.types.indexOf('sublocality_level_1') > -1;
})
下面的工作示例。
var sample = {
"results": [{
"address_components": [{
"long_name": "33",
"short_name": "33",
"types": [
"street_number"
]
}, {
"long_name": "Parking Road",
"short_name": "Parking Road",
"types": [
"route"
]
}, {
"long_name": "Welling Park",
"short_name": "Welling Park",
"types": [
"political",
"sublocality",
"sublocality_level_1"
]
}, {
"long_name": "Jill Town",
"short_name": "JT",
"types": [
"locality",
"political"
]
}, {
"long_name": "Perak",
"short_name": "Perak",
"types": [
"administrative_area_level_1",
"political"
]
}, {
"long_name": "Malaysia",
"short_name": "MY",
"types": [
"country",
"political"
]
}, {
"long_name": "46666",
"short_name": "46666",
"types": [
"postal_code"
]
}]
}]
}
var filtered = sample.results[0].address_components.filter(function(address) {
return address.types.indexOf('route') > -1 || address.types.indexOf('sublocality_level_1') > -1;
})
console.log(filtered);
关于javascript - 如何从这个 JSON 结果中过滤掉特定的地址类型而不需要空数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40590971/