วิธีแรกคือ concat ที่รู้จักกันดี แต่มีความแน่นอนของวิธีนี้ว่าวิธีนี้จะไม่เปลี่ยนอาร์เรย์ที่มีอยู่ แต่จะส่งคืนสำเนาของอาร์เรย์ที่เชื่อมต่อเท่านั้น
หากเราแค่ต้องการเพิ่มองค์ประกอบของอาร์เรย์ใหม่ในอาร์เรย์ที่มีอยู่เราก็ต้องกำหนดใหม่ซึ่งจริง ๆ แล้วมีทรัพยากรเล็กน้อย พูดง่ายๆคือเราต้องจัดสรรพื้นที่หน่วยความจำใหม่สำหรับอาร์เรย์ที่สร้างขึ้นใหม่และจุด ARR1 ไปยังที่อยู่หน่วยความจำใหม่อีกครั้งดังนั้นสิ่งที่เกี่ยวกับอาร์เรย์ในหน่วยความจำ?
ดังที่แสดงในตัวอย่างต่อไปนี้:
การคัดลอกรหัสมีดังนี้:
var arr1 = [1,2,3];
var arr1 = arr1.concat ([4,5]);
ดังนั้นมีวิธีที่ดีสำหรับเราในการหลีกเลี่ยงการใช้ทรัพยากรนี้หรือไม่?
ที่นี่คุณสามารถใช้วิธีการใช้งานดั้งเดิมของ JavaScript เพื่อนำไปใช้
การคัดลอกรหัสมีดังนี้:
var arr1 = [1,2,3];
arr1.push.apply (arr1, [4,5]);
สิ่งนี้ทำไปแล้ว อาร์เรย์
การคัดลอกรหัสมีดังนี้:
arr1.push (4,5);
ด้วยวิธีนี้ ARR1 ยังคงเป็น ARR1 เดียวกัน แต่หน่วยความจำได้รับการเขียนใหม่โดยไม่มีการเปลี่ยนเส้นทางหรือหน่วยความจำที่ไม่จำเป็น