Esta es mi codificación.
switch(education){ case "no highschool diploma": salary="25636"; break; case "a high school diploma": salary="35256"; break; case "an Associate's degree": salary = "41496"; break; case "an Bachelor's degree": salary = "59124"; break; case "an Master's degree": salary = "69732"; break; case "an Professional degree": salary = "89960"; break; case "an Doctoral degree": salary = "84396"; break; } console.log("In 2015, a person with "+education+" earned an average of "+ salary.toLocaleString("en-US") +"/year.");quiero saber por que es el resultado
En 2015, una persona con un diploma de escuela secundaria ganó un promedio de 35256/año.
En vez de
En 2015, una persona con un diploma de escuela secundaria ganaba un promedio de 35.256/año.
¿Dónde estoy equivocado?
Tus valores son cadenas, conviértelos en números:
const stringVariable = "12345"; const numberVariable = 12345; console.log(stringVariable.toLocaleString("en-US")); // Logs 12345 console.log(numberVariable.toLocaleString("en-US")); // Logs 12,345está trabajando con el tipo de cadena, primero debe convertir a número. console.log("In 2015, a person with "+education+" earned an average of "+ Number(salary).toLocaleString("en-US") +"/year.");
Diferentes tipos de datos (por ejemplo, Número, Cadena, Fecha) a menudo tienen su propia implementación de .toLocaleString()
Debido a que llama a .toLocaleString() en una cadena, actualmente está usando la implementación predeterminada como se define en el tipo de datos del objeto, que no se sobrescribe.
Sin embargo, si desea utilizar la versión asociada con un Número. Puede convertir una cadena en un número usando Number() antes de llamar a .toLocaleString() .
Si desea obtener más información, lea: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toLocaleString
manifestación
const education = "a high school diploma"; switch(education){ case "no highschool diploma": salary="25636"; break; case "a high school diploma": salary="35256"; break; case "an Associate's degree": salary = "41496"; break; case "an Bachelor's degree": salary = "59124"; break; case "an Master's degree": salary = "69732"; break; case "an Professional degree": salary = "89960"; break; case "an Doctoral degree": salary = "84396"; break; } console.log("In 2015, a person with "+education+" earned an average of " + Number(salary).toLocaleString("en-US") +"/year.");