Wie würde ich in Javascript ein leeres Array einer bestimmten Größe erstellen?
Pseudocode:
X = 3;
createarray(myarray, X, "");
Ausgabe:
myarray = ["","",""]
Wie würde ich in Javascript ein leeres Array einer bestimmten Größe erstellen?
Pseudocode:
X = 3;
createarray(myarray, X, "");
Ausgabe:
myarray = ["","",""]
Antworten:
var arr = new Array(5);
console.log(arr.length) // 5
[,,,,,]
.
in javascript how would I create an empty array of a given size
. Dies löst dieses Problem.
1) Um ein neues Array zu erstellen, über das Sie nicht iterieren können , können Sie den Array-Konstruktor verwenden:
Array(100)
oder new Array(100)
2) Sie können ein neues Array erstellen, das wie folgt wiederholt werden kann :
a) Alle JavaScript-Versionen
Array.apply(null, Array(100))
b) Ab ES6 JavaScript-Version
[...Array(100)]
Array(100).fill(undefined)
Array.from({ length: 100 })
Sie können diese Arrays wie unten abgebildet.
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(10000)
mit empty x 10000
?
console.log(Array(10000).length)
Aber wenn Sie laufen Array(10000).forEach((u, i) => console.log(i))
, erhalten Sie keine Ausgabe
Array.apply('x', Array(10))
ist eigentlich[undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined]
Wir verwenden Array.from({length: 500})
seit 2017.
Versuchen Sie es mit while
loop,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 Einzeilerlösung. Vielen Dank!
Im Jahr 2018 und von da an werden wir [...Array(500)]
zu diesem Zweck verwenden.
(() => { let n = []; for(var i=0;i<500;i++){y.push("");} return n; })()
.
Wenn Sie ein leeres Array von undefined
Elementen möchten , können Sie dies einfach tun
var whatever = new Array(5);
das würde dir geben
[undefined, undefined, undefined, undefined, undefined]
und wenn Sie möchten, dass es mit leeren Zeichenfolgen gefüllt wird, können Sie dies tun
whatever.fill('');
was würde dir geben
["", "", "", "", ""]
Und wenn Sie es in einer Zeile tun möchten:
var whatever = Array(5).fill('');
new Array(2)
gibt Ihnen [undefined, undefined]
und es ist absolut iterierbar. Es ist einfach so, dass bei Vanille-JSs forEach()
, von denen ich annehme, dass Sie sie zum Testen Ihrer Theorie verwenden, der Rückruf nicht für Array-Elemente aufgerufen wird, die nicht initialisiert sind (wie undefined
es der Fall wäre). Wenn Sie jedoch andere iterative Methoden verwenden, z. B. jQuery's $.each()
, können Sie feststellen, dass die undefined
Werte tatsächlich vorhanden sind : $.each(new Array(5), function(index, element) { console.log('element:', element) })
.
new Array(2)
und was ich zurück bekomme, ist [ <2 empty items> ]
nicht [undefined, undefined]
. Die Verwendung .map
auf dem ersteren hat keine Auswirkung. Ich kann es jedoch mit einer for...of
Schleife durchlaufen . Wenn ich ein neues Array in Literalschreibweise erstelle, a = [undefined, undefined]
kann ich .map
es verwenden.
Array(5)
. Sie sehen die folgende Ausgabe : [undefined x 5]
.
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)
Sie können beide Javascript-Methoden repeat () und split () zusammen verwenden.
" ".repeat(10).split(" ")
Dieser Code erstellt ein Array mit 10 Elementen und jedes Element ist eine leere Zeichenfolge.
const items = " ".repeat(10).split(" ")
document.getElementById("context").innerHTML = items.map((item, index) => index)
console.log("items: ", items)
<pre id="context">
</pre>