คำถามสัมภาษณ์ JS จากบริษัทแห่งหนึ่งเมื่อปี 2008 ตำแหน่ง javascript Engineer (กำลังจะเข้า Google)
ผู้สัมภาษณ์ถามฉันว่าจะโคลนอาเรย์ได้อย่างไร ตอนนั้นฉันคิดเกี่ยวกับมัน
แล้วจะรับอาเรย์ใหม่ได้อย่างไร?
ฉันตอบในเวลานั้น: ใช้การวนซ้ำเพื่อผลักองค์ประกอบของอาเรย์ต้นทางไปยังอาเรย์ใหม่ตามลำดับ นี่เป็นวิธีที่ง่ายที่สุด แต่ก็ไม่ใช่คำตอบที่ผู้สัมภาษณ์ต้องการอย่างเห็นได้ชัด
ในที่สุดก็บอกฉัน: ใช้วิธีแบ่งส่วนของ Array ตัวอย่างมีดังนี้:
คัดลอกรหัสรหัสดังต่อไปนี้:
var ary = [1,2,3];//อาร์เรย์แหล่งที่มา
var ary2 = ary.slice(0);//โคลนอาร์เรย์ใหม่
console.log(ary2);
/* การเปลี่ยน ary2 จะไม่ส่งผลต่อ ary โดยระบุว่าเป็นอาร์เรย์สองตัวแทนที่จะเป็นการอ้างอิง
* หากมีการอ้างอิงสองรายการ การเปลี่ยนแปลงรายการใดรายการหนึ่งถือเป็นการดำเนินการในอาร์เรย์เดียวกัน
-
อารี2[0] = 10;
console.log(ary2);
console.log(ary);