JavaScript'te belirli bir boyutta boş bir diziyi nasıl oluştururum
Psuedo kodu:
X = 3;
createarray(myarray, X, "");
çıktı:
myarray = ["","",""]
JavaScript'te belirli bir boyutta boş bir diziyi nasıl oluştururum
Psuedo kodu:
X = 3;
createarray(myarray, X, "");
çıktı:
myarray = ["","",""]
Yanıtlar:
var arr = new Array(5);
console.log(arr.length) // 5
in javascript how would I create an empty array of a given size. Bu, bu sorunu çözer.
1) Üzerinde yineleme yapamayacağınız yeni bir dizi oluşturmak için dizi yapıcısını kullanabilirsiniz:
Array(100) veya new Array(100)
2) Aşağıdaki gibi yinelenebilen yeni dizi oluşturabilirsiniz :
a) Tüm JavaScript sürümleri
Array.apply(null, Array(100))b) ES6 JavaScript sürümünden
[...Array(100)]Array(100).fill(undefined)Array.from({ length: 100 })Bu dizileri aşağıdaki gibi haritalayabilirsiniz.
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)ile empty x 10000?
console.log(Array(10000).length)Ama Array(10000).forEach((u, i) => console.log(i))
Array.apply('x', Array(10))aslında[undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined]
Array.from({length: 500})2017'den beri kullanıyoruz .
whileDöngü kullanmayı deneyin ,Array.prototype.push()
var myArray = [], X = 3;
while (myArray.length < X) {
myArray.push("")
}
Alternatif olarak, kullanarak Array.prototype.fill()
var myArray = Array(3).fill("");
.fill()zarif tek astarlı bir çözümdür. Teşekkürler!
2018'de ve bundan sonra [...Array(500)]bu amaçla kullanacağız .
(() => { let n = []; for(var i=0;i<500;i++){y.push("");} return n; })().
ES5 itibariyle (bu cevap verildiğinde):
Boş bir undefinedöğe dizisi istiyorsanız , şunları yapabilirsiniz:
var whatever = new Array(5);
bu sana verecek
[undefined, undefined, undefined, undefined, undefined]
ve sonra boş dizelerle doldurulmasını istiyorsanız,
whatever.fill('');
hangisi sana verecek
["", "", "", "", ""]
Ve bunu tek satırda yapmak istiyorsanız:
var whatever = Array(5).fill('');
new Array(2)ve geri aldığım şey [ <2 empty items> ]değil [undefined, undefined]. İlki .mapüzerinde kullanmanın hiçbir etkisi yoktur. Ancak, bir for...ofdöngü kullanarak üzerinde yineleme yapabilirim . Birebir gösterimi kullanarak yeni bir dizi yaratırsam , onu a = [undefined, undefined]kullanabilirim .map.
Array(5). Aşağıdaki çıktıyı göreceksiniz: [undefined x 5].
Bazı değerlerle anonim dizi oluşturmak istiyorsanız bu sözdizimini kullanabilirsiniz.
var arr = new Array(50).fill().map((d,i)=>++i)
console.log(arr)
Hem javascript yöntemlerini tekrar () hem de split () birlikte kullanabilirsiniz.
" ".repeat(10).split(" ")
Bu kod, 10 öğeli ve her öğesi boş dizeden oluşan bir dizi oluşturacaktır.
const items = " ".repeat(10).split(" ")
document.getElementById("context").innerHTML = items.map((item, index) => index)
console.log("items: ", items)
<pre id="context">
</pre>