Así que tengo una serie de nombres de países abreviados , estoy tratando de obtener y mostrar el nombre completo del país en un objeto.
const countries = [ { name:'Argentina', border:["NGA", "PAK","CHN"], }, { name:'China', border:["ARG", "PAK"], }, { name:'Nigeria', border:['PAK', 'CHN'], }, { name:'Pakistan', border:['NGA', 'ARG'], }, ]entonces si accedo al primer índice de la matriz cuyo nombre es Argentina y borde de nga, pak y chn
const country = countries.find((con) => con.name === "Argentina"); console.log(country.border); });así que solo veo valores de Abbr en la consola tal como se esperaba, que es esto
[NGA, PAK, CHN]pero en realidad quiero algo como esto
[Nigeria, Pakistan, China]Entonces, ¿cómo registro realmente el nombre completo del país en la consola con los objetos proporcionados porque he pensado y pensado en una forma de hacerlo, pero simplemente no entiendo la idea del enlace URL de datos ?
Primero puede crear un dict como
fetch("https://restcountries.eu/rest/v2/all") .then((res) => res.json()) .then((data) => { const dict = data.reduce((acc, curr) => { acc[curr.alpha3Code] = curr.name; return acc; }, {}); console.log(dict); }); /* This is not a part of answer. It is just to give the output fill height. So IGNORE IT */ .as-console-wrapper { max-height: 100% !important; top: 0; } const dict = { NGA: "Nigeria", PAK: "Pakistan", CHN: "China", ARG: "Argentina", }; const countries = [ { name: "Argentina", border: ["NGA", "PAK", "CHN"], }, { name: "China", border: ["ARG", "PAK"], }, { name: "Nigeria", border: ["PAK", "CHN"], }, { name: "Pakistan", border: ["NGA", "ARG"], }, ]; const result = countries.map((o) => dict[o.border[0]]); console.log(result);Puede asignar los resultados mediante una función que cambia las abreviaturas en nombres completos.
const countries = [ { name:'Argentina', border:["NGA", "PAK","CHN"], }, { name:'China', border:["ARG", "PAK"], }, { name:'Nigeria', border:['PAK', 'CHN'], }, { name:'Pakistan', border:['NGA', 'ARG'], }, ] const abrRefrence = { CHN: "China", PAK: "Pakistan", NGA: "Nigeria", ARG: "Argentina", } const abrToFull = abr => abrRefrence[abr]; const country = countries.find(con => con.name === "Argentina"); console.log(country.border.map(abrToFull));