Vorrei qualcosa di simile 5 + 6al ritorno "56"invece di 11.
Vorrei qualcosa di simile 5 + 6al ritorno "56"invece di 11.
Risposte:
Usa "" + 5 + 6per forzare le stringhe. Funziona anche con variabili numeriche:
var a = 5;
var b = 6;
console.log("" + a + b);
const numbersAsString = `${5}${6}`;
var value = "" + 5 + 6;
alert(value);
È ora possibile utilizzare i letterali modello ES6 .
const numbersAsString = `${5}${6}`;
console.log(numbersAsString); // Outputs 56
Oppure, se hai variabili:
const someNumber = 5;
const someOtherNumber = 6;
const numbersAsString = `${someNumber}${someOtherNumber}`;
console.log(numbersAsString); // Outputs 56
Personalmente trovo la nuova sintassi molto più chiara, anche se leggermente più prolissa.
basta usare:
5 + "" + 6
risposta semplice:
5 + '' + 6;
Uso
var value = "" + 5 + 6;
per forzarlo alle stringhe.
So che questo è un vecchio post e ha ricevuto risposta molte volte. Anch'io mi chiedevo se JavaScript avesse una funzione in grado di farlo. Stavo facendo un po 'di programmazione matematica e avevo bisogno di concatenare due numeri.
Quindi cosa succederebbe se avessi bisogno di combinare due numeri 17 e 29. Certo che posso trasformarli in stringhe e concatenarli, quindi trasformare la nuova stringa in un numero. Sembra funzionare abbastanza bene e posso continuare con il mio codice, ma diamo un'occhiata qui e proviamo a capire cosa sta realmente accadendo qui.
Cosa stiamo facendo a questi due numeri, come prendiamo 17 e 29 e li trasformiamo in millesettecentoventinove? Bene, possiamo moltiplicare 17 per 100, quindi aggiungere 29. E che ne dici di 172 e 293 per ottenere centosettantaduemiladuecentonovantatre? Moltiplicare 172 per 1000 e aggiungere 293. Ma che dire solo di 2 e 9? Moltiplica 2 per 10, quindi aggiungi 9 per ottenere 29.
Quindi spero che a questo punto uno schema dovrebbe esserti chiaro. Possiamo escogitare una formula matematica per fare questo calcolo al posto nostro, invece di usare solo stringhe. Per concatenare due numeri qualsiasi, aeb, dobbiamo prendere il prodotto di a e 10 alla potenza della lunghezza b, quindi aggiungere b.
Allora come otteniamo la lunghezza del numero b? Bene, potremmo trasformare b in una stringa e ottenere la sua proprietà length.
a * Math.pow(10, new String(b).length) + b;
Ma ci deve essere un modo migliore per farlo senza stringhe, giusto? Si C'è.
Per due numeri qualsiasi, aeb, con qualsiasi base B. Moltiplicheremo a per base B per la potenza della lunghezza b (usando la base logaritmica di b quindi pavimentandola per ottenere il numero intero più vicino e aggiungendo 1 ad esso) quindi aggiungendo b.
Quindi ora il nostro codice ha questo aspetto:
a * Math.pow(10, Math.floor(Math.log10(b)) + 1) + b;
Ma aspetta, e se volessi farlo in base 2 o in base 8? Come lo posso fare? Non possiamo usare la nostra formula che abbiamo appena creato con qualsiasi altra base tranne la base 10. L'oggetto JavaScript Math ha già funzioni incorporate per la base 10 e 2 (solo Math.log), ma come otteniamo le funzioni di log per qualsiasi altra base? Dividiamo il logaritmo di b per il logaritmo di base.Math.log(b) / Math.log(base).
Quindi ora abbiamo il nostro codice matematico completamente funzionante per concatenare due numeri:
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
Se sapevi che avresti fatto solo calcoli in base 10, potresti aggiungere un controllo per la base non è definita, quindi impostare 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
Per semplificarmi, ho usato il prototipo per aggiungere la funzione all'oggetto Numero:
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
Puoi anche usare la toStringfunzione per convertirlo in stringa e concatenare.
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
Questo è il modo più semplice per farlo
var value=5+""+6;
Sono tornato a un numero come questo ..
const timeNow = '' + 12 + 45;
const openTime = parseInt(timeNow, 10);
uscita 1245
-- modificare --
spiacente,
per il mio uso questo ancora non ha funzionato per me dopo il test. Ho dovuto aggiungere nuovamente lo zero mancante poiché veniva rimosso su numeri inferiori a 10, il mio uso è per far funzionare il codice in determinati momenti Potrebbe non essere corretto ma sembra funzionare (finora).
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;
}
Il voto negativo è stato bello grazie :)
Sono nuovo in questo e vengo qui per imparare da voi una spiegazione del perché sarebbe stato carino.
Ad ogni modo ho aggiornato il mio codice per mostrare come ho risolto il mio problema poiché questo post mi ha aiutato a capirlo.
Per aggiungere a tutte le risposte sopra, voglio che condivida la logica di sfondo:
Plus è un operatore di addizione utilizzato anche per la concatenazione di stringhe. Quando vogliamo concatenare i numeri. Dovrebbe essere chiaro che vogliamo concatenare le stringhe, poiché la concatenazione di numeri non mi rende validi casi d'uso.
Possiamo ottenerlo in molti modi,
Attraverso la conversione del tipo
let a = 5;
a.toString()+5 // Output 55 type "string"
Funzionerà anche con la conversione del tipo in background,
5 +""+ 5 // Output 55 type "string"
Se sei determinato a concatenare due stringhe e il tipo di output dovrebbe essere int, parseInt () funziona qui
parseInt(5 +""+ 5) //Output 55 Type "number"