w javascript jak miałbym stworzyć pustą tablicę o podanym rozmiarze
Kod pseudo:
X = 3;
createarray(myarray, X, "");
wynik:
myarray = ["","",""]
w javascript jak miałbym stworzyć pustą tablicę o podanym rozmiarze
Kod pseudo:
X = 3;
createarray(myarray, X, "");
wynik:
myarray = ["","",""]
Odpowiedzi:
var arr = new Array(5);
console.log(arr.length) // 5
in javascript how would I create an empty array of a given size
. To rozwiązuje ten problem.
1) Aby utworzyć nową tablicę, po której nie możesz iterować , możesz użyć konstruktora tablicy:
Array(100)
lub new Array(100)
2) Możesz utworzyć nową tablicę, którą można iterować jak poniżej:
a) Wszystkie wersje JavaScript
Array.apply(null, Array(100))
b) Z wersji ES6 JavaScript
[...Array(100)]
Array(100).fill(undefined)
Array.from({ length: 100 })
Możesz mapować te tablice, jak poniżej.
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)
z empty x 10000
?
console.log(Array(10000).length)
ale jeśli uruchomisz Array(10000).forEach((u, i) => console.log(i))
, nie otrzymasz żadnego wyniku
Array.apply('x', Array(10))
jest właściwie[undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined]
Używamy Array.from({length: 500})
od 2017 roku.
Spróbuj użyć while
pętli,Array.prototype.push()
var myArray = [], X = 3;
while (myArray.length < X) {
myArray.push("")
}
Alternatywnie, używając Array.prototype.fill()
var myArray = Array(3).fill("");
.fill()
to eleganckie rozwiązanie z jednym wkładem. Dzięki!
W 2018 r. I odtąd będziemy używać [...Array(500)]
do tego celu.
(() => { let n = []; for(var i=0;i<500;i++){y.push("");} return n; })()
.
Od ES5 (kiedy podano tę odpowiedź):
Jeśli chcesz mieć pustą tablicę undefined
elementów, możesz po prostu to zrobić
var whatever = new Array(5);
to dałoby ci
[undefined, undefined, undefined, undefined, undefined]
a jeśli chcesz, aby był wypełniony pustymi łańcuchami, możesz to zrobić
whatever.fill('');
co by ci dało
["", "", "", "", ""]
A jeśli chcesz to zrobić w jednej linii:
var whatever = Array(5).fill('');
new Array(2)
a to, co otrzymuję, [ <2 empty items> ]
nie jest [undefined, undefined]
. Używanie .map
na tym pierwszym nie ma żadnego efektu. Jednak mogę go iterować za pomocą for...of
pętli. Jeśli utworzę nową tablicę przy użyciu notacji dosłownej a = [undefined, undefined]
, mogę .map
na niej użyć .
Array(5)
. Pojawi się następujący komunikat: [undefined x 5]
.
Jeśli chcesz utworzyć anonimową tablicę z pewnymi wartościami, możesz użyć tej składni.
var arr = new Array(50).fill().map((d,i)=>++i)
console.log(arr)
Możesz używać razem metod javascript repeat () i split ().
" ".repeat(10).split(" ")
Ten kod utworzy tablicę zawierającą 10 elementów, a każdy element jest pustym ciągiem.
const items = " ".repeat(10).split(" ")
document.getElementById("context").innerHTML = items.map((item, index) => index)
console.log("items: ", items)
<pre id="context">
</pre>