Wie manipuliere ich ein array?
Ich habe ein array[0,1,2,3,4]
und ich möchte die ausgabe haben 00000000000000000000 20mal0 als erstes als zweites 00000000000000000001 19mal0 und 1mal1 jetzt möchte ich dass immer eine 0 weniger wird und die ein immer um1 erhöht wird bis bis 20 dann müsste da 20mal 1 stehen glaub ich
PS ich programmiere in JS
2 Antworten
Du benötigst lediglich eine For-Schleife und dessen Bedingung festlegest, wie oft diese Schleife ausgeführt werden soll. Wenn die Ergebnisse (Sequenzen) nach jedem Durchlauf in einem Array gespeichert werden sollen, dies mit push erreichen kannst.
Funktion:
function sequence() {
let result = [];
for (let i = 0; i <= 20; i++) {
let zeros = '0'.repeat(20 - i);
let ones = '1'.repeat(i);
result.push(zeros + ones);
}
return result;
}
// Funktionsaufruf, Ergebnis als Variable speichern
let sequenceArray = Sequence();
// In der Console ausgeben
console.log(sequenceArray);
Inhalt des sequenceArrays:
[
"00000000000000000000",
"00000000000000000001",
"00000000000000000011",
"00000000000000000111",
"00000000000000001111",
"00000000000000011111",
"00000000000000111111",
"00000000000001111111",
"00000000000011111111",
"00000000000111111111",
"00000000001111111111",
"00000000011111111111",
"00000000111111111111",
"00000001111111111111",
"00000011111111111111",
"00000111111111111111",
"00001111111111111111",
"00011111111111111111",
"00111111111111111111",
"01111111111111111111",
"11111111111111111111"
]
Es geht auch kürzer (siehe auch @mihisu's Antwort):
Array.from({ length: 21 }, (_, i) => console.log('0'.repeat(20 - i) + '1'.repeat(i)));
So in der Art...
for (let i = 0; i <= 20; i++) {
console.log("0".repeat(20-i)+"1".repeat(i));
}
Die Ausgabe in der Konsole dazu...
00000000000000000000
00000000000000000001
00000000000000000011
00000000000000000111
00000000000000001111
00000000000000011111
00000000000000111111
00000000000001111111
00000000000011111111
00000000000111111111
00000000001111111111
00000000011111111111
00000000111111111111
00000001111111111111
00000011111111111111
00000111111111111111
00001111111111111111
00011111111111111111
00111111111111111111
01111111111111111111
11111111111111111111
Mir ist jedoch nicht klar, was das...
Ich habe ein array[0,1,2,3,4]
... damit zu tun haben soll. Das passt nicht so recht zum Rest deiner Frage.
Ich muss noch 2 Dinge einbauen undzwar ab lvl 17 soll die folge quasi auch die von 18 sein spricht 17+18 ist die selbe zahl 19+20 etc bis 25 (ich hoffe dass ich mich nicht verzählt habe) Und wenn es bei 25 angekommen ist sollen bei 26 die index sich beide verschiedenen da soll das was vorher die 0 war 1 sein und die 1 zur 2 werden. Und das soll bei 50 und 75 auch passieren. Und zu guter letzt soll der user von 1-20 2 karten umdrehen dürfen 21-40 3 karten etc quasi in 20er schritten
Ich weiß auch nicht ob es klüger ist ein array mit allen 100 zahlen zu machen dass ch quasi ne liste hab oder ob ich das mit diesen methoden und funktionen machen soll das ist dann einfacher späte zu patchen falls ich was ändern möchte damit ich nicht alle zahlen einzeln zählen und abändern muss
Wow, kannte die repeat Methode noch gar nicht. Danke, man lernt selbst nach 4 Jahren noch dazu.
Ich hab ein Kartenspiel Programmiert für meinen Discord Bot. Dort hab ich 20 Buttons die ich mit ? ausgebe und nachdem der User Buttons gedrückt hat wird die Karte "aufgedeckt" und da sind dann diese möglichen 5 zeichen darunter