ในจาวาสคริปต์ฉันจะสร้างอาร์เรย์ว่างขนาดที่กำหนดได้อย่างไร
รหัส Psuedo:
X = 3;
createarray(myarray, X, "");
เอาต์พุต:
myarray = ["","",""]
ในจาวาสคริปต์ฉันจะสร้างอาร์เรย์ว่างขนาดที่กำหนดได้อย่างไร
รหัส Psuedo:
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))b)จากเวอร์ชัน 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)
คุณสามารถใช้จาวาสคริปต์ทั้งสองวิธีทำซ้ำ () และแยก () ร่วมกัน
" ".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>