Ich möchte für etwas wie 5 + 6
zurückkehren "56"
statt 11
.
javascript
Heidi
quelle
quelle
Antworten:
Verwenden Sie
"" + 5 + 6
diese Option, um Zeichenfolgen zu erzwingen. Dies funktioniert auch mit numerischen Variablen:quelle
const numbersAsString = `${5}${6}`;
quelle
Sie können jetzt ES6- Vorlagenliterale verwenden.
Oder wenn Sie Variablen haben:
Persönlich finde ich die neue Syntax viel klarer, wenn auch etwas ausführlicher.
quelle
benutz einfach:
quelle
einfache Antwort:
quelle
quelle
Verwenden
um es zu Saiten zu zwingen.
quelle
Ich weiß, dass dies ein alter Beitrag ist und schon oft beantwortet wurde. Ich habe mich auch gefragt, ob JavaScript eine Funktion hat, die dies tun würde. Ich programmierte Mathe und musste zwei Zahlen verketten.
Was wäre, wenn ich zwei Zahlen 17 und 29 kombinieren müsste? Sicher kann ich sie in Zeichenfolgen umwandeln und verketten und dann die neue Zeichenfolge wieder in eine Zahl umwandeln. Das scheint ziemlich gut zu funktionieren und ich kann mit meinem Code weitermachen, aber schauen wir uns das hier an und versuchen herauszufinden, was hier wirklich passiert.
Was machen wir mit diesen beiden Zahlen, wie nehmen wir 17 und 29 und verwandeln sie in eintausendsiebenhundertneunundzwanzig? Nun, wir können 17 mit 100 multiplizieren und dann 29 addieren. Und wie wäre es mit 172 und 293, um einhundertzweiundsiebzigtausendzweihundertdreiundneunzig zu erhalten? Multiplizieren Sie 172 mit 1000 und addieren Sie 293. Aber was ist mit nur 2 und 9? Multiplizieren Sie 2 mit 10 und addieren Sie 9, um 29 zu erhalten.
Hoffentlich sollte Ihnen jetzt ein Muster klar sein. Wir können eine mathematische Formel entwickeln, um diese Berechnung für uns durchzuführen, anstatt nur Zeichenfolgen zu verwenden. Um zwei beliebige Zahlen, a und b, zu verketten, müssen wir das Produkt von a und 10 zur Potenz der Länge b nehmen und dann b addieren.
Wie bekommen wir also die Länge von Nummer b? Nun, wir könnten b in einen String verwandeln und die Länge-Eigenschaft davon erhalten.
Aber es muss einen besseren Weg geben, dies ohne Schnüre zu tun, oder? Ja da ist.
Für zwei beliebige Zahlen, a und b, mit einer beliebigen Basis B. Wir multiplizieren a mit der Basis B mit der Potenz der Länge b (verwenden Sie die logarithmische Basis von b und legen Sie sie auf den Boden, um die nächste ganze Zahl zu erhalten, und addieren Sie dann 1 dazu). dann Hinzufügen von b.
So sieht unser Code jetzt aus:
Aber warte, was wäre, wenn ich dies in Basis 2 oder Basis 8 tun wollte? Wie kann ich das machen? Wir können unsere Formel, die wir gerade erstellt haben, nicht mit einer anderen Basis als Basis 10 verwenden. Das JavaScript Math-Objekt verfügt bereits über integrierte Funktionen für Basis 10 und 2 (nur Math.log), aber wie erhalten wir Protokollfunktionen für eine beliebige andere Basis? Wir teilen das Protokoll von b durch das Protokoll der Basis.
Math.log(b) / Math.log(base).
Jetzt haben wir unseren voll funktionsfähigen mathematischen Code zum Verketten von zwei Zahlen:
Wenn Sie wüssten, dass Sie nur Basis 10-Mathematik durchführen würden, könnten Sie eine Prüfung hinzufügen, ob die Basis undefiniert ist, und dann Basis = 10 setzen:
Um es mir einfacher zu machen, habe ich den Prototyp verwendet, um die Funktion zum Number-Objekt hinzuzufügen:
quelle
Sie können die
toString
Funktion auch verwenden , um sie in Zeichenfolgen zu konvertieren und zu verketten.quelle
Eine andere Möglichkeit könnte folgende sein:
quelle
quelle
Dies ist der einfache Weg, dies zu tun
quelle
Ich habe wieder auf diese Nummer umgestellt.
Ausgabe 1245
- bearbeiten -
Es tut uns leid,
Für meinen Gebrauch funktionierte dies nach dem Testen immer noch nicht für mich. Ich musste die fehlende Null wieder hinzufügen, da sie bei Zahlen kleiner als 10 entfernt wurde. Ich verwende sie, um Code zu bestimmten Zeiten ausführen zu lassen. Möglicherweise nicht korrekt, aber es scheint (bisher) zu funktionieren.
}}
Die Abstimmung war schön, danke :)
Ich bin neu in diesem Bereich und komme hierher, um von euch eine Erklärung zu lernen, warum es nett gewesen wäre.
Wie auch immer, mein Code wurde aktualisiert, um zu zeigen, wie ich mein Problem behoben habe, da dieser Beitrag mir geholfen hat, es herauszufinden.
quelle
Ich würde den
concat
Weg bevorzugen :Sie können auch ein Array verwenden, das in einigen Anwendungsfällen hilfreich sein kann:
quelle
Mit diesem Trick können Sie eine Nummer zurückgeben :
nicht empfohlen
Beispiel:
quelle
Um zu allen obigen Antworten hinzuzufügen, möchte ich die Hintergrundlogik teilen:
Plus ist ein Additionsoperator, der auch zur Verkettung von Zeichenfolgen verwendet wird. Wenn wir Zahlen verketten wollen. Es sollte das Verständnis sein, dass wir die Zeichenfolgen verketten möchten, da die Verkettung von Zahlen für mich keine gültigen Anwendungsfälle darstellt.
Wir können es auf verschiedene Arten erreichen,
Durch Typkonvertierung
Dies funktioniert auch und führt die Typkonvertierung im Hintergrund durch.
Wenn Sie zwei Zeichenfolgen verketten möchten und der Ausgabetyp int sein sollte, funktioniert parseInt () hier
quelle