ดูเหมือนจะไม่มีวิธีที่จะขยายอาร์เรย์ JavaScript ที่มีอยู่กับอาร์เรย์อื่นเช่นเพื่อเลียนแบบextend
วิธีการของ Python
ฉันต้องการบรรลุสิ่งต่อไปนี้:
>>> a = [1, 2]
[1, 2]
>>> b = [3, 4, 5]
[3, 4, 5]
>>> SOMETHING HERE
>>> a
[1, 2, 3, 4, 5]
ฉันรู้ว่ามันมีa.concat(b)
วิธีการ แต่มันสร้างอาเรย์ใหม่แทนที่จะขยายออกไปอย่างแรก ฉันต้องการอัลกอริทึมที่ทำงานอย่างมีประสิทธิภาพเมื่อa
มีขนาดใหญ่กว่าอย่างมากb
(เช่นที่ไม่ได้คัดลอกa
)
หมายเหตุ:นี่ไม่ใช่สิ่งที่ซ้ำกันของวิธีผนวกบางสิ่งเข้ากับอาร์เรย์ - เป้าหมายที่นี่คือการเพิ่มเนื้อหาทั้งหมดของอาเรย์หนึ่งไปยังอีกอาเรย์และเพื่อทำมัน "ในสถานที่" คือโดยไม่ต้องคัดลอกองค์ประกอบทั้งหมดของอาเรย์ขยาย
a.push(...b)
. มันคล้ายกับแนวคิดของคำตอบที่ได้รับการปรับปรุง แต่สำหรับ ES6