In Ruby kann ich tun ('a'..'z').to_a
bekommen ['a', 'b', 'c', 'd', ... 'z']
.
Bietet JavaScript ein ähnliches Konstrukt?
MrPizzaFace
In Ruby kann ich tun ('a'..'z').to_a
bekommen ['a', 'b', 'c', 'd', ... 'z']
.
Bietet JavaScript ein ähnliches Konstrukt?
Michael Langhorst
Am besten finde ich persönlich:
alphabet="abcdefghijklmnopqrstuvwxyz".split('');
Prägnant, effektiv, lesbar und einfach!
BEARBEITEN:
Ich habe beschlossen, dass, da meine Antwort ziemlich viel Aufmerksamkeit erhält, die Funktionalität hinzugefügt wird, um bestimmte Buchstabenbereiche auszuwählen.
function to_a(c1 = 'a', c2 = 'z') {
a="abcdefghijklmnopqrstuvwxyz".split('');
return (a.slice(a.indexOf(c1), a.indexOf(c2) + 1));
}
console.log(to_a('b', 'h'));
Wie würden Sie unterbringen ('m'..'p').to_a
, ('A'..'F').to_a
oder ('1'..'5').to_a
?
– Paul S.
3. September 2015 um 14:15 Uhr
@PaulS. Ich kenne Ruby nicht, aber ich werde heute versuchen, es über einige Zeit zu portieren.
– Michael Longhurst
2. Februar 2016 um 10:00 Uhr
Kleines Extra: Wenn Sie wirklich faul sind, können Sie einfach Ihren Finger über jede Zeile auf Ihrer Tastatur ziehen (qwertyuiop…), dann verwenden Sie die Sortieren Methode, um die Buchstaben wieder in Ordnung zu bringen.
– Michael Longhurst
9. Januar 2017 um 12:56 Uhr
So erhalten Sie alle Zeichen in GROSSBUCHSTABEN: const alphabet = 'abcdefghijklmnopqrstuvwxyz'.split('').map((c) => c.toUpperCase());
– sonlexqt
18. März 2017 um 20:33 Uhr
Was würden Sie sagen, die erwartete Ausgabe von to_a('A', 'z');
ist? Oder to_a('α', 'ω')
@MichaelLonghurst? Auch @sonlexqt, wenn Sie Ihre Operationen andersherum bestellen, sparen Sie viel CPU; 'abcdefghijklmnopqrstuvwxyz'.toUpperCase().split('')
– Paul S.
26. Juli 2017 um 21:24 Uhr
HenningCash
Eine kurze ES6-Version:
const alphabet = [...'abcdefghijklmnopqrstuvwxyz'];
console.log(alphabet);
Paul S.
Sie können leicht eine machen Funktion um dies für Sie zu tun, wenn Sie es sehr brauchen
function genCharArray(charA, charZ) {
var a = [], i = charA.charCodeAt(0), j = charZ.charCodeAt(0);
for (; i <= j; ++i) {
a.push(String.fromCharCode(i));
}
return a;
}
console.log(genCharArray('a', 'z')); // ["a", ..., "z"]
charCodeAt(0) für i und j?
– MrPizzaFace
6. Juli 2014 um 15:56 Uhr
@f1f5, um den Unicode-Codierungswert des ersten Zeichens jedes Arguments abzurufen.
– Spitze
6. Juli 2014 um 15:57 Uhr
Ich denke, das ist der Weg, es zu tun. Es könnte auch generisch gemacht werden, indem der Typ der Argumente getestet und ein geeigneter Bereich zurückgegeben wird, z. B. Zahlen.
– Keks Monster
6. Juli 2014 um 16:04 Uhr
Ich bin zufällig darauf gestoßen, aber das Eingeben einer Funktion, die das Array von Zeichenliteralen zurückgibt, hat weniger Zeichen als diese Funktion. Siehe meinen Codepen: codepen.io/jarodsmk/pen/NYaaxx
– jarodsmk
26. März 2018 um 4:57 Uhr
Danke, einige nützliche Demos für kleine Kinder mrswed.github.io/Russian_alphabet_for_color mit allen Buchstaben
– Herr Swed
14. Februar 2019 um 7:46 Uhr
Falls jemand hierher gekommen ist und nach etwas gesucht hat, das er fest codieren kann, hier geht es:
["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
new Array( 26 ).fill( 1 ).map( ( _, i ) => String.fromCharCode( 65 + i ) );
Verwenden Sie 97 statt 65, um die Kleinbuchstaben zu erhalten.
könnte benutzen 'A'.charCodeAt(0)
um eine magische Zahl zu entfernen (mit geringen Leistungseinbußen)
– Alex
2. März 2018 um 11:12 Uhr
Sherwin Ablana Dapito
Mit dem ES6-Spread-Operator könnten Sie etwa Folgendes tun:
let alphabet = [...Array(26).keys()].map(i => String.fromCharCode(i + 97));
könnte benutzen 'A'.charCodeAt(0)
um eine magische Zahl zu entfernen (mit geringen Leistungseinbußen)
– Alex
2. März 2018 um 11:12 Uhr
Ich habe oben eine Antwort gesehen, die ich geliebt habe, nämlich die fest codierte Liste der englischen Alphabete, aber sie war nur in Kleinbuchstaben und ich brauchte auch Großbuchstaben, also habe ich beschlossen, sie zu ändern, falls jemand anderes sie braucht:
const lowerAlph = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
const upperCaseAlp = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
Nein, Sie haben einen Codeblock anstelle von Inline-Code erstellt, der keine Bildlaufleiste hat. Dreifachklick zum Auswählen der Zeile enthält Ihre Variablendefinition, die jemand möglicherweise nicht möchte. Kleinbuchstaben sind oben bereits vorhanden, also habe ich einen Großbuchstaben gesetzt ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
(von dir kopiert, und irgendwie hast du einen anderen Codestil)
– Valen
19. Mai 2019 um 18:35 Uhr
@Valen Der Inline-Code wurde zur besseren Lesbarkeit korrigiert. Danke für die Beobachtung.
– rotimi-best
19. Mai 2019 um 20:02 Uhr
Nein, Sie müssen Ihre eigenen erstellen.
– Keks Monster
6. Juli 2014 um 15:52 Uhr