Estoy usando la API de codificación geográfica de Google y estoy tratando de obtener la ciudad. Esto es lo que estoy recibiendo la información.
const city = data.results[0].address_components[3].long_nameEl problema con esto es que la respuesta será diferente dependiendo de la dirección que proporcione el usuario. En algunos, estará en address_components[2] en lugar de 3. La ciudad está en la respuesta pero en una matriz diferente.
¿Hay alguna manera de obtener siempre la ciudad, independientemente de dónde se encuentre en la matriz?
Seguro que hay una manera. Para lograr esto, no debe confiar en la posición exacta en la matriz de componentes de dirección.
En su lugar, debe aplicar el filtro por el campo "tipos" para encontrar el componente de dirección correspondiente de la ciudad.
Se pueden utilizar los siguientes métodos de matriz:
La instantánea del código es la siguiente.
const addressComponents = data.results[0].address_components; const filteredArray = addressComponents.filter( address_component => address_component.types.includes("locality") ); const city = filteredArray.length ? filteredArray[0].long_name : "City not found";