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 whileloop,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 undefinedElementen 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 undefinedes der Fall wäre). Wenn Sie jedoch andere iterative Methoden verwenden, z. B. jQuery's $.each(), können Sie feststellen, dass die undefinedWerte 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 .mapauf dem ersteren hat keine Auswirkung. Ich kann es jedoch mit einer for...ofSchleife durchlaufen . Wenn ich ein neues Array in Literalschreibweise erstelle, a = [undefined, undefined]kann ich .mapes 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>