в javascript, как мне создать пустой массив заданного размера
Псевдокод:
X = 3;
createarray(myarray, X, "");
выход:
myarray = ["","",""]
Ответы:
var arr = new Array(5);
console.log(arr.length) // 5
in javascript how would I create an empty array of a given size. Это решает эту проблему.
1) Чтобы создать новый массив, который вы не можете перебирать , вы можете использовать конструктор массива:
Array(100) или new Array(100)
2) Вы можете создать новый массив, который можно повторять, как показано ниже:
а) Все версии JavaScript
Array.apply(null, Array(100))б) Из версии ES6 JavaScript
[...Array(100)]Array(100).fill(undefined)Array.from({ length: 100 })Вы можете сопоставить эти массивы, как показано ниже.
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)с empty x 10000?
console.log(Array(10000).length)но если вы запустите Array(10000).forEach((u, i) => console.log(i)), вы не получите никакого вывода
Array.apply('x', Array(10))на самом деле[undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined]
Используем Array.from({length: 500})с 2017 года.
Попробуйте использовать whileцикл,Array.prototype.push()
var myArray = [], X = 3;
while (myArray.length < X) {
myArray.push("")
}
В качестве альтернативы, используя Array.prototype.fill()
var myArray = Array(3).fill("");
.fill()это элегантное однострочное решение. Благодарность!
В 2018 году и в дальнейшем мы будем использовать [...Array(500)]для этого.
(() => { let n = []; for(var i=0;i<500;i++){y.push("");} return n; })().
Начиная с ES5 (когда был дан этот ответ):
Если вам нужен пустой массив undefinedэлементов, вы можете просто сделать
var whatever = new Array(5);
это даст вам
[undefined, undefined, undefined, undefined, undefined]
а затем, если вы хотите, чтобы он был заполнен пустыми строками, вы могли бы сделать
whatever.fill('');
что даст вам
["", "", "", "", ""]
И если вы хотите сделать это одной строкой:
var whatever = Array(5).fill('');
new Array(2)а то, что я получаю, - [ <2 empty items> ]нет [undefined, undefined]. С помощью.map первого не имеет никакого эффекта. Однако я могу перебирать его с помощью for...ofцикла. Если я создам новый массив, используя буквальную нотацию, a = [undefined, undefined]я могу использовать .mapего.
Array(5). Вы увидите следующий вывод: [undefined x 5].
Если вы хотите создать анонимный массив с некоторыми значениями, вы можете использовать этот синтаксис.
var arr = new Array(50).fill().map((d,i)=>++i)
console.log(arr)
Вы можете использовать оба метода javascript repeat () и split () вместе.
" ".repeat(10).split(" ")
Этот код создаст массив из 10 элементов, каждый из которых представляет собой пустую строку.
const items = " ".repeat(10).split(" ")
document.getElementById("context").innerHTML = items.map((item, index) => index)
console.log("items: ", items)
<pre id="context">
</pre>