Javascript erstellt ein leeres Array einer bestimmten Größe

Lesezeit: 3 Minuten

Benutzer-Avatar
Gus

Wie würde ich in Javascript ein leeres Array einer bestimmten Größe erstellen?

Pseudocode:

X = 3;
createarray(myarray, X, "");

Ausgang:

   myarray = ["","",""]

  • Sie würden wahrscheinlich verwenden Array.prototype.fill.

    – RobG

    22. Januar 2016 um 1:17 Uhr


  • Mögliches Duplikat von Standard-Array-Werten

    – Nick Greally

    27. Juni 2017 um 0:20 Uhr

  • Verwandter Beitrag hier.

    – RBT

    9. Oktober 2017 um 0:54 Uhr

Benutzer-Avatar
stpoa

1) Um ein neues Array zu erstellen, das Sie kann nicht iteriert werdenkönnen Sie den Array-Konstruktor verwenden:

Array(100) oder new Array(100)

2) Sie können ein neues Array erstellen, das kann iteriert werden Wie unten:

a) Alle JavaScript-Versionen

  • Array.apply:
    Array.apply(null, Array(100))

b) Von der ES6-JavaScript-Version

  • Destrukturierender Operator:
    [...Array(100)]
  • Array.prototype.fill
    Array(100).fill(undefined)
  • Array.von
    Array.from({ length: 100 })

Sie können diese Arrays wie unten zuordnen.

  • Array(4).fill(null).map((u, i) => i) [0, 1, 2, 3]

  • [...Array(4)].map((u, i) => i) [0, 1, 2, 3]

  • Array.apply(null, Array(4)).map((u, i) => i) [0, 1, 2, 3]

  • Array.from({ length: 4 }).map((u, i) => i) [0, 1, 2, 3]

  • Array.prototype.fill (>=ES6) kangax.github.io/compat-table/es6/…;

    – ptim

    20. Juli 2017 um 3:18 Uhr

  • Erleuchtung des Tages – wenn Sie in Teil (A) erwähnen, dass ein neu erstelltes Array mit Konstruktorsyntax nicht einmal iterierbar ist. Javascript überrascht manchmal wirklich.

    – RBT

    9. Oktober 2017 um 1:03 Uhr

  • Was ist die Größe von Array(10000) mit empty x 10000?

    – QWERTZ

    13. April 2018 um 14:26 Uhr

  • Seine Länge beträgt 10000, Sie können es überprüfen console.log(Array(10000).length) Aber wenn du rennst Array(10000).forEach((u, i) => console.log(i))erhalten Sie keine Ausgabe

    – stpoa

    16. April 2018 um 8:26 Uhr


  • Array.apply('x', Array(10)) ist eigentlich [undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined]

    – Polv

    4. August 2018 um 9:13 Uhr

var arr = new Array(5);
console.log(arr.length) // 5

  • Fragte der OP in javascript how would I create an empty array of a given size. Dies löst dieses Problem.

    – Mariofang

    22. Januar 2016 um 1:21 Uhr

  • Das OP hat ein Beispiel für “leer” bereitgestellt.

    – RobG

    22. Januar 2016 um 1:22 Uhr

  • Nun, dies ist eine weitere Option für die Frage. Sie können eine der bereitgestellten Antworten auswählen, das ist der Ruhm von Stackoverflow 🙂

    – Mariofang

    22. Januar 2016 um 1:24 Uhr

Benutzer-Avatar
andrewkslv

Wir gebrauchen Array.from({length: 500}) seit 2017.

  • @gion_13: Ich sehe, dass es positiv gestimmt wird und meins negativ gestimmt wird. Grund?

    – 7vujy0f0hy

    15. April 2018 um 2:02 Uhr

  • @7vujy0f0hy Ich weiß nicht, warum du weniger Stimmen bekommen hast. Ich habe Ihnen zugestimmt, obwohl Ihre Lösung etwas weniger intuitiv ist als diese.

    – gion_13

    15. April 2018 um 5:17 Uhr

  • @gion_13: Danke für die Bestätigung, dass an meiner Lösung nichts falsch ist ☺.

    – 7vujy0f0hy

    15. April 2018 um 9:56 Uhr

Benutzer-Avatar
jeffdill2

Ab ES5 (als diese Antwort gegeben wurde):

Wenn Sie ein leeres Array von möchten undefined Elemente, könnten Sie einfach tun

var whatever = new Array(5);

das würde dir geben

[undefined, undefined, undefined, undefined, undefined]

In neueren Versionen gibt es dies nun

[empty × 5]

Siehe diese andere Frage zum Unterschied zwischen leer und undefiniert.

Wenn Sie möchten, dass es mit leeren Zeichenfolgen gefüllt wird, können Sie dies tun

whatever.fill('');

was dir geben würde

["", "", "", "", ""]

Und wenn Sie es in einer Zeile tun möchten:

var whatever = Array(5).fill('');

Versuchen Sie es mit while Schleife, Array.prototype.push()

var myArray = [], X = 3;
while (myArray.length < X) {
  myArray.push("")
}

Alternativ mit Array.prototype.fill()

var myArray = Array(3).fill("");

  • .fill() ist eine elegante Einzeiler-Lösung. Vielen Dank!

    – colefner

    17. Januar 2019 um 22:58 Uhr

Benutzer-Avatar
7vujy0f0hy

Im Jahr 2018 und danach werden wir verwenden [...Array(500)] zu diesem Zweck.

  • .fill() ist eine elegante Einzeiler-Lösung. Vielen Dank!

    – colefner

    17. Januar 2019 um 22:58 Uhr

Benutzer-Avatar
manan5439

Wenn Sie ein anonymes Array mit einigen Werten erstellen möchten, können Sie diese Syntax verwenden.

var arr = new Array(50).fill().map((d,i)=>++i)
console.log(arr)

1257980cookie-checkJavascript erstellt ein leeres Array einer bestimmten Größe

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy