em javascript como eu criaria um array vazio de um determinado tamanho
Código Psuedo:
X = 3;
createarray(myarray, X, "");
resultado:
myarray = ["","",""]
javascript
gus
fonte
fonte
Respostas:
var arr = new Array(5); console.log(arr.length) // 5
fonte
in javascript how would I create an empty array of a given size
. Isso resolve o problema.1) Para criar uma nova matriz que não possa ser repetida , você pode usar o construtor de matriz:
Array(100)
ounew Array(100)
2) Você pode criar uma nova matriz, que pode ser iterada como a seguir:
a) Todas as versões de JavaScript
Array.apply(null, Array(100))
b) Da versão ES6 JavaScript
[...Array(100)]
Array(100).fill(undefined)
Array.from({ length: 100 })
Você pode mapear esses arrays como abaixo.
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]fonte
Array(10000)
comempty x 10000
?console.log(Array(10000).length)
Mas se você executarArray(10000).forEach((u, i) => console.log(i))
, você não obterá saídaArray.apply('x', Array(10))
é na verdade[undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined]
Usamos
Array.from({length: 500})
desde 2017.fonte
Tente usar
while
loop,Array.prototype.push()
var myArray = [], X = 3; while (myArray.length < X) { myArray.push("") }
Alternativamente, usando
Array.prototype.fill()
var myArray = Array(3).fill("");
fonte
.fill()
é uma solução elegante de um revestimento. Obrigado!Em 2018 e daí em diante usaremos
[...Array(500)]
para esse fim.fonte
(() => { let n = []; for(var i=0;i<500;i++){y.push("");} return n; })()
.No ES5 (quando esta resposta foi dada):
Se você quiser uma matriz vazia de
undefined
elementos, pode simplesmente fazervar whatever = new Array(5);
isso daria a você
[undefined, undefined, undefined, undefined, undefined]
e então se você quiser que ele seja preenchido com strings vazias, você pode fazer
whatever.fill('');
o que daria a você
["", "", "", "", ""]
E se você quiser fazer isso em uma linha:
var whatever = Array(5).fill('');
fonte
new Array(2)
e o que recebo[ <2 empty items> ]
não é[undefined, undefined]
. Usar.map
no primeiro não tem efeito. No entanto, posso iterar sobre ele usando umfor...of
loop. Se eu criar uma nova matriz usando notação literala = [undefined, undefined]
, posso usar.map
nela.Array(5)
. Você verá o seguinte resultado:[undefined x 5]
.Se você deseja criar uma matriz anônima com alguns valores, pode usar esta sintaxe.
var arr = new Array(50).fill().map((d,i)=>++i) console.log(arr)
fonte
Você pode usar os métodos de javascript repeat () e split () juntos.
" ".repeat(10).split(" ")
Este código criará uma matriz com 10 itens e cada item é uma string vazia.
const items = " ".repeat(10).split(" ") document.getElementById("context").innerHTML = items.map((item, index) => index) console.log("items: ", items)
<pre id="context"> </pre>
fonte