Me gustaría algo como 5 + 6
volver en "56"
lugar de 11
.
javascript
Heidi
fuente
fuente
Respuestas:
Úselo
"" + 5 + 6
para forzarlo a cuerdas. Esto también funciona con variables numéricas:fuente
const numbersAsString = `${5}${6}`;
fuente
Ahora puede hacer uso de literales de plantilla ES6 .
O, si tiene variables:
Personalmente, encuentro la nueva sintaxis mucho más clara, aunque un poco más detallada.
fuente
Solo usa:
fuente
respuesta simple:
fuente
fuente
Utilizar
para forzarlo a cuerdas.
fuente
Sé que esta es una publicación antigua y ha sido respondida muchas veces. Yo también me preguntaba si JavaScript tenía una función que hiciera esto. Estaba haciendo algo de programación matemática y necesitaba concatenar dos números.
Entonces, ¿qué pasaría si tuviera que combinar dos números 17 y 29? Claro que puedo convertirlos en cadenas y concatenarlos y luego convertir la nueva cadena en un número. Eso parece funcionar bastante bien y puedo continuar con mi código, pero echemos un vistazo aquí y tratemos de averiguar qué está sucediendo realmente aquí.
¿Qué estamos haciendo con estos dos números, cómo tomamos 17 y 29 y lo convertimos en mil setecientos veintinueve? Bueno, podemos multiplicar 17 por 100 y luego sumar 29. ¿Y qué tal 172 y 293 para obtener ciento setenta y dos mil doscientos noventa y tres? Multiplica 172 por 1000 y suma 293. Pero, ¿qué pasa con solo 2 y 9? Multiplica 2 por 10 y luego suma 9 para obtener 29.
Así que, con suerte, a estas alturas ya debería ser evidente un patrón. Podemos idear una fórmula matemática para hacer este cálculo por nosotros en lugar de simplemente usar cadenas. Para concatenar dos números cualesquiera, ayb, necesitamos tomar el producto de ay 10 a la potencia de la longitud b y luego sumar b.
Entonces, ¿cómo obtenemos la longitud del número b? Bueno, podríamos convertir b en una cadena y obtener la propiedad length.
Pero tiene que haber una mejor manera de hacer esto sin ataduras, ¿verdad? Sí hay.
Para dos números cualesquiera, ayb, con cualquier base B. Vamos a multiplicar a por la base B a la potencia de la longitud b (usando la base logarítmica de b y luego colocando el piso para obtener el número entero más cercano y luego agregando 1) luego agregando b.
Así que ahora nuestro código se ve así:
Pero espera, ¿y si quisiera hacer esto en base 2 o en base 8? ¿Cómo puedo hacer eso? No podemos usar nuestra fórmula que acabamos de crear con cualquier otra base que no sea la base 10. El objeto JavaScript Math ya tiene funciones integradas para base 10 y 2 (solo Math.log), pero ¿cómo obtenemos funciones de registro para cualquier otra base? Dividimos el logaritmo de b por el logaritmo de base.
Math.log(b) / Math.log(base).
Así que ahora tenemos nuestro código matemático completamente funcional para concatenar dos números:
Si sabía que solo iba a hacer matemáticas de base 10, podría agregar una verificación para que la base no esté definida y luego establecer base = 10:
Para facilitarme las cosas, utilicé el prototipo para agregar la función al objeto Número:
fuente
También puede usar la
toString
función para convertirlo en cadena y concatenar.fuente
Otra posibilidad podría ser esta:
fuente
fuente
Esta es la forma fácil de hacer esto
fuente
Convertí de nuevo a un número como este ...
salida 1245
- editar -
lo siento,
para mi uso, esto todavía no me funcionó después de la prueba. Tuve que volver a agregar el cero faltante, ya que se estaba eliminando en números menores a 10, mi uso es para dejar que el código se ejecute en ciertos momentos.Puede que no sea correcto, pero parece funcionar (hasta ahora).
}
La votación en contra fue agradable gracias :)
Soy nuevo en esto y vine aquí para aprender de ustedes una explicación de por qué hubiera sido bueno.
De todos modos actualicé mi código para mostrar cómo solucioné mi problema, ya que esta publicación me ayudó a resolverlo.
fuente
Preferiría la
concat
forma:También puede usar una matriz que puede ayudar en algunos casos de uso:
fuente
Puedes devolver un número usando este truco:
no recomendado
Ejemplo:
fuente
Para agregar a todas las respuestas anteriores, quiero compartir la lógica de fondo:
Plus es un operador de suma que también se utiliza para la concatenación de cadenas. Cuando queremos concatenar números. Debe entenderse que queremos concatenar las cadenas, ya que la concatenación de números no me convierte en casos de uso válidos.
Podemos lograrlo de múltiples formas,
Mediante conversión de tipo
Esto también funcionará y hará la conversión de tipo en segundo plano,
Si está decidido a concatenar dos cadenas y el tipo de salida debe ser int, parseInt () funciona aquí
fuente