Me gustaría algo como 5 + 6volver en "56"lugar de 11.
Me gustaría algo como 5 + 6volver en "56"lugar de 11.
Respuestas:
Úselo "" + 5 + 6para forzarlo a cuerdas. Esto también funciona con variables numéricas:
var a = 5;
var b = 6;
console.log("" + a + b);
const numbersAsString = `${5}${6}`;
var value = "" + 5 + 6;
alert(value);
Ahora puede hacer uso de literales de plantilla ES6 .
const numbersAsString = `${5}${6}`;
console.log(numbersAsString); // Outputs 56
O, si tiene variables:
const someNumber = 5;
const someOtherNumber = 6;
const numbersAsString = `${someNumber}${someOtherNumber}`;
console.log(numbersAsString); // Outputs 56
Personalmente, encuentro la nueva sintaxis mucho más clara, aunque un poco más detallada.
Solo usa:
5 + "" + 6
respuesta simple:
5 + '' + 6;
Utilizar
var value = "" + 5 + 6;
para forzarlo a cuerdas.
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.
a * Math.pow(10, new String(b).length) + b;
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í:
a * Math.pow(10, Math.floor(Math.log10(b)) + 1) + b;
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:
function concatenate(a, b, base) {
return a * Math.pow(base, Math.floor(Math.log(b) / Math.log(base)) + 1) + b;
}
var a = 17, var b = 29;
var concatenatedNumber = concatenate(a, b, 10);
// concatenatedNumber = 1729
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:
function concatenate(a, b, base) {
if(typeof base == 'undefined') {
base = 10;
}
return a * Math.pow(base, Math.floor(Math.log(b) / Math.log(base)) + 1) + b;
}
var a = 17, b = 29;
var newNumber = concatenate(a, b); // notice I did not use the base argument
// newNumber = 1729
Para facilitarme las cosas, utilicé el prototipo para agregar la función al objeto Número:
Number.prototype.concatenate = function(b, base) {
if(typeof base == 'undefined') {
base = 10;
}
return this * Math.pow(base, Math.floor(Math.log(b) / Math.log(base)) + 1) + b;
};
var a = 17;
var newNumber = a.concatenate(29);
// newNumber = 1729
También puede usar la toStringfunción para convertirlo en cadena y concatenar.
var a = 5;
var b = 6;
var value = a.toString() + b.toString();
enter code here
var a = 9821099923;
var b = 91;
alert ("" + b + a);
// after concating , result is 919821099923 but its is now converted
into string
console.log(Number.isInteger("" + b + a)) // false
you have to do something like below:-
var c= parseInt("" + b + a)
console.log(c); // 919821099923
console.log(Number.isInteger(c)) // true
Esta es la forma fácil de hacer esto
var value=5+""+6;
Convertí de nuevo a un número como este ...
const timeNow = '' + 12 + 45;
const openTime = parseInt(timeNow, 10);
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).
h = new Date().getHours();
m = new Date().getMinutes();
isOpen: boolean;
timeNow = (this.m < 10) ? '' + this.h + 0 + this.m : '' + this.h + this.m;
openTime = parseInt(this.timeNow);
closed() {
(this.openTime >= 1450 && this.openTime <= 1830) ? this.isOpen = true :
this.isOpen = false;
(this.openTime >= 715 && this.openTime <= 915) ? this.isOpen = true :
this.isOpen = false;
}
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.
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
let a = 5;
a.toString()+5 // Output 55 type "string"
Esto también funcionará y hará la conversión de tipo en segundo plano,
5 +""+ 5 // Output 55 type "string"
Si está decidido a concatenar dos cadenas y el tipo de salida debe ser int, parseInt () funciona aquí
parseInt(5 +""+ 5) //Output 55 Type "number"