en javascript, ¿cómo crearía una matriz vacía de un tamaño dado?
Código Psuedo:
X = 3;
createarray(myarray, X, "");
salida:
myarray = ["","",""]
javascript
gus
fuente
fuente
Respuestas:
var arr = new Array(5); console.log(arr.length) // 5
fuente
in javascript how would I create an empty array of a given size
. Esto resuelve ese problema.1) Para crear una nueva matriz sobre la que no puede iterar , puede usar el constructor de matriz:
Array(100)
onew Array(100)
2) Puede crear una nueva matriz, que se puede iterar como se muestra a continuación:
a) Todas las versiones de JavaScript
Array.apply(null, Array(100))
b) Desde la versión de JavaScript ES6
[...Array(100)]
Array(100).fill(undefined)
Array.from({ length: 100 })
Puede mapear estas matrices como se muestra a continuación.
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]fuente
Array(10000)
conempty x 10000
?console.log(Array(10000).length)
Pero si ejecutaArray(10000).forEach((u, i) => console.log(i))
, no obtendrá salidaArray.apply('x', Array(10))
es en realidad[undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined]
Usamos
Array.from({length: 500})
desde 2017.fuente
Intenta 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("");
fuente
.fill()
es una elegante solución de una sola línea. ¡Gracias!En 2018 y de ahora en adelante usaremos
[...Array(500)]
para ese fin.fuente
(() => { let n = []; for(var i=0;i<500;i++){y.push("");} return n; })()
.A partir de ES5 (cuando se dio esta respuesta):
Si desea una matriz vacía de
undefined
elementos, simplemente puede hacervar whatever = new Array(5);
esto te daría
[undefined, undefined, undefined, undefined, undefined]
y luego, si desea que se llene con cadenas vacías, puede hacer
whatever.fill('');
que te daría
["", "", "", "", ""]
Y si quieres hacerlo en una línea:
var whatever = Array(5).fill('');
fuente
new Array(2)
y lo que obtengo[ <2 empty items> ]
no lo es[undefined, undefined]
. Usar.map
en el primero no tiene ningún efecto. Sin embargo, puedo iterar sobre él usando unfor...of
bucle. Si creo una nueva matriz usando notación literala = [undefined, undefined]
, puedo usarla.map
.Array(5)
. Verá el siguiente resultado:[undefined x 5]
.Si desea crear una matriz anónima con algunos valores, puede usar esta sintaxis.
var arr = new Array(50).fill().map((d,i)=>++i) console.log(arr)
fuente
Puede usar ambos métodos de JavaScript, repeat () y split () juntos.
" ".repeat(10).split(" ")
Este código creará una matriz que tiene 10 elementos y cada elemento es una cadena vacía.
const items = " ".repeat(10).split(" ") document.getElementById("context").innerHTML = items.map((item, index) => index) console.log("items: ", items)
<pre id="context"> </pre>
fuente