2017-12-23 4 views
1

Ich habe versucht, eine Herausforderung auf einer der Coding-Websites zu lösen, und ich sah dies in der besten Lösung für diese Herausforderung.Wie wird der Spread-Operator verwendet, um eine Zahl in ein String-Array umzuwandeln?

Kann jemand erarbeiten, warum dieses Stück Code: [...a%10+''+a]

die folgende Array zurück: ["2", "1", "1", "2", "2"]

Was tatsächlich hinter den Kulissen geschieht?

P.S. Ich bin mir bewusst, dass dies nicht die beste Praxis ist, aber ich lerne immer noch und das scheint wirklich interessant.

+1

Was ist der Wert von 'a'? Wo ist es hergekommen? – CRice

+3

@CRice 'a' muss entweder' 1122' oder '' 1122'' sein. – Paulpro

+0

'a' ist eine Nummer. Wie @Paulpro sagte, es ist 1122. – dusski

Antwort

2

Angenommen, der ursprüngliche Wert von a ist 1122.

  1. a%10 gibt die letzte Ziffer von a, nämlich 2.
  2. +'' konvertiert das von einer Zahl in eine Zeichenfolge, "2".
  3. +a verkettet den vollen Wert von a, resultierend in "21122".
  4. Setzen Sie diese in [...] verteilt die Zeichenfolge in ein Array seiner Zeichen.

Hier sind alle Schritte als Code:

const a = 1122; 
 
const lastDigit = a % 10; 
 
const lastDigitStr = lastDigit + ''; 
 
const newStr = lastDigitStr + a; 
 
const result = [...newStr]; 
 
console.dir(result);

+0

Ah, es kommt auf die Reihenfolge der Ausführung. Danke, dass ihr mich das bemerkt habt. – dusski

Verwandte Themen