Tengo la siguiente matriz que regresa de un servicio.
indexLabelServices = [ ' Pear', ' Apple', ' Banana',' Peach',' Orange',' Cherry' ] Para cada elemento de la matriz, quiero dar una label diferente (traducción)
este es mi codigo
const convertServicesLabels = (indexLabelServices) => { let label=""; for (let index = 0; index < indexLabelServices.length; ++index) { const element = indexLabelServices[index]; if(element === " Pear){ label=Pera; }else if(element ===" Apple"){ label=Mela; }else if(element ===" Banana"){ label=Platano; }else if(element ===" Peach"){ label=Pesca }else if(element ===" Orange"){ label=Arancia; }else if(element ===" Cherry"){ label=Ciliegia; } } return label; } El resultado que tengo con este método es que solo el elemento Orange se traduce a Arancia , no se traducen otros elementos.
¿Qué estoy haciendo mal? ¿Cómo puedo manipular/traducir cualquier elemento de la matriz indexLabelServices ?
solo está devolviendo el último elemento que está almacenando en la etiqueta sin mutar la matriz, intente usar el mapa sobre la lista.
let indexLabelServices = [' Pear', ' Apple', ' Banana', ' Peach', ' Orange', ' Cherry'] indexLabelServices = indexLabelServices.map(element => { switch (element.toLocaleLowerCase().trim()) { case "pear":return "Pera"; case "apple":return "Mela"; case "banana":return "Platano"; case "peach":return "Pesca"; case "orange":return "Arancia"; case "cherry":return "Ciliegia"; default:return "Unknown"; } }) console.log(indexLabelServices)El problema se encuentra dentro de un bucle for en el que cada iteración reescribe la label de la variable. Otro problema es iterar sobre esa matriz. Cuando haces ++index , luego incrementas el índice variable antes de ingresar el cuerpo del bucle for, así que en su lugar intenta usar index++ . En este caso, habrá un incremento de índice después de una iteración del ciclo for.
Si necesita devolver una matriz de todas las traducciones, edite su código a algo como esto:
let indexLabelServices = [ ' Pear', ' Apple', ' Banana',' Peach',' Orange',' Cherry' ]; const convertServicesLabels = (indexLabelServices) => { let translations = []; for (let index = 0; index < indexLabelServices.length; index++) { const element = indexLabelServices[index]; if(element === " Pear"){ translations[index] = 'Pera'; } else if(element ===" Apple"){ translations[index] = 'Mela'; } else if(element ===" Banana"){ translations[index] = 'Platano'; } else if(element ===" Peach"){ translations[index] = 'Pesca'; } else if(element ===" Orange"){ translations[index] = 'Arancia'; } else if(element ===" Cherry"){ translations[index] = 'Ciliegia'; } } return translations; } console.log(convertServicesLabels(indexLabelServices));Configure un objeto que contenga las traducciones, luego asigne la matriz original a una nueva matriz usando los elementos de la matriz para devolver la traducción del diccionario.
const indexLabelServices = [' Pear', ' Apple', ' Banana', ' Peach', ' Orange', ' Cherry']; const dict = {' Pear':'Pera', ' Apple':'Mela', ' Banana':'Platano', ' Peach':'Pesca', ' Orange':'Arancia', ' Cherry':'Ciliegia'}; console.log(dict); let translations = indexLabelServices.map(x=>dict[x]); console.log(translations)