hola yo tengo algo asi
var zxc1 = 1846; var zxc2 = 1649; var zxc3 = 174; var zxc4 = 27; if(message.toLowerCase() == ('!asd')) { client.say(channel, `zxc1` +`(${+ zxc1.toLocaleString()})` +` | zxc2 `+`(${+ zxc2.toLocaleString()})` +` | zxc3 ` +`(${+ zxc3.toLocaleString()})` +` | zxc4 ` +`(${+ zxc4.toLocaleString()})` +` | :) `);}Después de escribir !asd:
Resultado: zxc1(NaN) | zxc2 (NaN) | zxc3 (174) | zxc4 (27) | 2
¿Cuál es el problema?
¿Por qué zxc3 y zxc4 funcionan pero zxc1 y zxc2 no?
En ${+ zxc1.toLocaleString()} , el + se aplicará al resultado de zxc1.toLocaleString() para convertirlo en un número (lo que parece contraproducente).
Si no está seguro de si algo es un número, le recomiendo que use la función numérica, por ejemplo, ${Number(zxc1).toLocaleString()} en lugar de usar +
La razón por la que 3 y 4 funcionan es porque (lo más probable) su configuración regional agrega un separador de miles y, por lo tanto, 1 y 2 no se pueden volver a convertir en números directamente.