в javascript, как мне создать пустой массив заданного размера
Псевдокод:
X = 3;
createarray(myarray, X, "");
выход:
myarray = ["","",""]
javascript
гас
источник
источник
Ответы:
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>
источник