Reputation: 31
I was trying to fetch the details when a PIN code is given and by executing it, I got an output like this:
{
"headers": {
"Content-Type": "application/json"
},
"results": [
{
"formatted_address": "Karnataka 581110, India",
"types": [
"postal_code"
],
"geometry": {
"viewport": {
"southwest": {
"lng": 75.27469980000001,
"lat": 14.6612046
},
"northeast": {
"lng": 75.599386,
"lat": 14.8850042
}
},
"bounds": {
"southwest": {
"lng": 75.27469980000001,
"lat": 14.6612046
},
"northeast": {
"lng": 75.599386,
"lat": 14.8850042
}
},
"location": {
"lng": 75.41116439999999,
"lat": 14.7732552
},
"location_type": "APPROXIMATE"
},
"address_components": [
{
"types": [
"postal_code"
],
"short_name": "581110",
"long_name": "581110"
},
{
"types": [
"administrative_area_level_2",
"political"
],
"short_name": "Haveri",
"long_name": "Haveri"
},
{
"types": [
"administrative_area_level_1",
"political"
],
"short_name": "KA",
"long_name": "Karnataka"
},
{
"types": [
"country",
"political"
],
"short_name": "IN",
"long_name": "India"
}
],
"place_id": "ChIJ0dut9kpvuTsRk0SobKd72tU",
"postcode_localities": [
"Aladakatti",
"Aladakatti",
"Ashwini Nagar",
"Bannihalli",
"Basaveshwar Nagar",
"Benakanahalli",
"Bharadi",
"Bhujruk Veerapur",
"Bujruk Kodihalli",
"Byagawadi",
"Chikklingadalli",
"Devagiri",
"Devagiri Yallapura",
"Devihosur",
"Ganajur",
"Gourapur-M-Adur",
"Gourapura",
"Guddad Mattihalli",
"Hanumanahalli",
"Haveri",
"Hedigonda",
"Hirelingadahalli",
"Hombardi",
"Hosalli",
"Hosalli-m-adur",
"Ingalagondi",
"Jangamanakoppa",
"Kabbur",
"Kadamanahalli",
"Kaginelli",
"Kalagonda",
"Kallapura",
"Kallihal",
"Kasambi",
"Katenahalli",
"Kengond",
"Kerimattihalli",
"Khurda Veerapura",
"Kodihalli",
"Kulenur",
"Kummur",
"Kurabagonda",
"Malapur",
"Mallur",
"Manjunath Nagar",
"Mulathalli",
"Naganur",
"Nagendranamatti",
"Najikalakamapur",
"Nelogal",
"Sankripura",
"Shiddeshwar Nagar",
"Shivajinagar",
"Shivalinganagar",
"Somasagara",
"Timakapur",
"Timmapur-M-Adur",
"Timmenhalli",
"Totadayallapur",
"Uppanshi",
"Venkatapura",
"Vidya Nagar",
"Yattinahalli",
"kanakapur",
"kanavalli",
"kuragund"
]
}
],
"status": "OK"
}
But I only need
{
"types": [
"administrative_area_level_2",
"political"
],
"short_name": "Haveri",
"long_name": "Haveri"
},
{
"types": [
"administrative_area_level_1",
"political"
],
"short_name": "KA",
"long_name": "Karnataka"
}
this much only. So how can I show only these two?
Upvotes: 3
Views: 271
Reputation: 27192
Observations:
administrative_area_level
.Solutions: You can iterate the API response by using Array.filter()
and Array.some()
with the help of String.indexOf()
methods to get the desired output.
Live Demo**:**
const apiResponse = {
"headers": {
"Content-Type": "application/json"
},
"results": [
{
"formatted_address": "Karnataka 581110, India",
"types": [
"postal_code"
],
"geometry": {
"viewport": {
"southwest": {
"lng": 75.27469980000001,
"lat": 14.6612046
},
"northeast": {
"lng": 75.599386,
"lat": 14.8850042
}
},
"bounds": {
"southwest": {
"lng": 75.27469980000001,
"lat": 14.6612046
},
"northeast": {
"lng": 75.599386,
"lat": 14.8850042
}
},
"location": {
"lng": 75.41116439999999,
"lat": 14.7732552
},
"location_type": "APPROXIMATE"
},
"address_components": [
{
"types": [
"postal_code"
],
"short_name": "581110",
"long_name": "581110"
},
{
"types": [
"administrative_area_level_2",
"political"
],
"short_name": "Haveri",
"long_name": "Haveri"
},
{
"types": [
"administrative_area_level_1",
"political"
],
"short_name": "KA",
"long_name": "Karnataka"
},
{
"types": [
"country",
"political"
],
"short_name": "IN",
"long_name": "India"
}
],
"place_id": "ChIJ0dut9kpvuTsRk0SobKd72tU",
"postcode_localities": [
"Aladakatti",
"Aladakatti",
"Ashwini Nagar",
"Bannihalli",
"Basaveshwar Nagar",
"Benakanahalli",
"Bharadi",
"Bhujruk Veerapur",
"Bujruk Kodihalli",
"Byagawadi",
"Chikklingadalli",
"Devagiri",
"Devagiri Yallapura",
"Devihosur",
"Ganajur",
"Gourapur-M-Adur",
"Gourapura",
"Guddad Mattihalli",
"Hanumanahalli",
"Haveri",
"Hedigonda",
"Hirelingadahalli",
"Hombardi",
"Hosalli",
"Hosalli-m-adur",
"Ingalagondi",
"Jangamanakoppa",
"Kabbur",
"Kadamanahalli",
"Kaginelli",
"Kalagonda",
"Kallapura",
"Kallihal",
"Kasambi",
"Katenahalli",
"Kengond",
"Kerimattihalli",
"Khurda Veerapura",
"Kodihalli",
"Kulenur",
"Kummur",
"Kurabagonda",
"Malapur",
"Mallur",
"Manjunath Nagar",
"Mulathalli",
"Naganur",
"Nagendranamatti",
"Najikalakamapur",
"Nelogal",
"Sankripura",
"Shiddeshwar Nagar",
"Shivajinagar",
"Shivalinganagar",
"Somasagara",
"Timakapur",
"Timmapur-M-Adur",
"Timmenhalli",
"Totadayallapur",
"Uppanshi",
"Venkatapura",
"Vidya Nagar",
"Yattinahalli",
"kanakapur",
"kanavalli",
"kuragund"
]
}
],
"status": "OK"
};
const result = apiResponse.results.map(({ address_components }) => {
return address_components.filter(({ types }) => {
return types.some(item => item.indexOf('administrative_area_level') !== -1)
});
});
console.log(...result);
Upvotes: 3
Reputation: 76426
This is a pure JavaScript solution:
console.log(
({
"headers": {
"Content-Type": "application/json"
},
"results": [
{
"formatted_address": "Karnataka 581110, India",
"types": [
"postal_code"
],
"geometry": {
"viewport": {
"southwest": {
"lng": 75.27469980000001,
"lat": 14.6612046
},
"northeast": {
"lng": 75.599386,
"lat": 14.8850042
}
},
"bounds": {
"southwest": {
"lng": 75.27469980000001,
"lat": 14.6612046
},
"northeast": {
"lng": 75.599386,
"lat": 14.8850042
}
},
"location": {
"lng": 75.41116439999999,
"lat": 14.7732552
},
"location_type": "APPROXIMATE"
},
"address_components": [
{
"types": [
"postal_code"
],
"short_name": "581110",
"long_name": "581110"
},
{
"types": [
"administrative_area_level_2",
"political"
],
"short_name": "Haveri",
"long_name": "Haveri"
},
{
"types": [
"administrative_area_level_1",
"political"
],
"short_name": "KA",
"long_name": "Karnataka"
},
{
"types": [
"country",
"political"
],
"short_name": "IN",
"long_name": "India"
}
],
"place_id": "ChIJ0dut9kpvuTsRk0SobKd72tU",
"postcode_localities": [
"Aladakatti",
"Aladakatti",
"Ashwini Nagar",
"Bannihalli",
"Basaveshwar Nagar",
"Benakanahalli",
"Bharadi",
"Bhujruk Veerapur",
"Bujruk Kodihalli",
"Byagawadi",
"Chikklingadalli",
"Devagiri",
"Devagiri Yallapura",
"Devihosur",
"Ganajur",
"Gourapur-M-Adur",
"Gourapura",
"Guddad Mattihalli",
"Hanumanahalli",
"Haveri",
"Hedigonda",
"Hirelingadahalli",
"Hombardi",
"Hosalli",
"Hosalli-m-adur",
"Ingalagondi",
"Jangamanakoppa",
"Kabbur",
"Kadamanahalli",
"Kaginelli",
"Kalagonda",
"Kallapura",
"Kallihal",
"Kasambi",
"Katenahalli",
"Kengond",
"Kerimattihalli",
"Khurda Veerapura",
"Kodihalli",
"Kulenur",
"Kummur",
"Kurabagonda",
"Malapur",
"Mallur",
"Manjunath Nagar",
"Mulathalli",
"Naganur",
"Nagendranamatti",
"Najikalakamapur",
"Nelogal",
"Sankripura",
"Shiddeshwar Nagar",
"Shivajinagar",
"Shivalinganagar",
"Somasagara",
"Timakapur",
"Timmapur-M-Adur",
"Timmenhalli",
"Totadayallapur",
"Uppanshi",
"Venkatapura",
"Vidya Nagar",
"Yattinahalli",
"kanakapur",
"kanavalli",
"kuragund"
]
}
],
"status": "OK"
}).results[0].address_components.filter(item => item.types.filter(tp => tp.indexOf("administrative_area_level") >= 0).length)
)
Explanation:
results
memberaddress_components
is wrapped around the addressestypes
by containing a type which contains administrative_area_level
Upvotes: 1