ก่อนหน้านี้คุณได้เรียนรู้วิธีการเพิ่มและลบรายการออกจากอาร์เรย์โดยใช้ push()
ของ JavaScript วิธีการ
แต่ถ้าเราต้องการเพิ่มอาร์เรย์ของรายการไปยังอาร์เรย์ที่มีอยู่ล่ะ กล่าวอีกนัยหนึ่งจะเป็นอย่างไรถ้าเราต้องการรวมสองอาร์เรย์ที่ต่างกันเข้าด้วยกัน?
หากต้องการรวมอาร์เรย์ตั้งแต่สองอาร์เรย์ขึ้นไปเข้าด้วยกันใน JavaScript คุณสามารถใช้ Array.prototype.push.apply()
สมมติว่าเรามีตะกร้าผลไม้สองใบ และเราต้องการผลไม้ทั้งหมดในตะกร้าใบเดียว ไม่เป็นไร
ES5
var fruitBasketOne = ["apple", "banana", "grapes"]
var fruitBasketTwo = ["orange", "apricot", "pear"]
Array.prototype.push.apply(fruitBasketOne, fruitBasketTwo)
// returns ['apple', 'banana', 'grapes', 'orange', 'apricot', 'pear']
console.log(fruitBasketOne)
// returns ["orange", "apricot", "pear"]
console.log(fruitBasketTwo)
สิ่งนี้จะรวมอาร์เรย์ที่สองเข้ากับอาร์เรย์แรก สังเกตว่าอาร์เรย์ที่สอง fruitBasketTwo
ยังคงอยู่ในความทรงจำ วิธีนี้ ไม่ ลบอาร์เรย์เดิม
ผสานอาร์เรย์กับ ES6
การรวมสามารถทำได้ง่ายยิ่งขึ้นโดยใช้ตัวดำเนินการสเปรด ES6:
let fruitBasketOne = ["apple", "banana", "grapes"]
let fruitBasketTwo = ["orange", "apricot", "pear"]
fruitBasketOne.push(...fruitBasketTwo)
// returns ['apple', 'banana', 'grapes', 'orange', 'apricot', 'pear']
console.log(fruitBasketOne)
ความเข้ากันได้
วิธีการพุชแรกเข้ากันได้กับเบราว์เซอร์สมัยใหม่ทั้งหมด และกลับไปเป็น IE6 เป็นอย่างน้อย วิธีที่สองใช้งานได้ในเบราว์เซอร์รุ่นใหม่เท่านั้น แต่คุณสามารถใช้ตัวประมวลผลล่วงหน้า เช่น Babel เพื่อคอมไพล์ JavaScript ของคุณกลับไปเป็นโค้ดที่เข้ากันได้กับ ES5 และทำงานในเบราว์เซอร์รุ่นเก่าได้
เพิ่มเติมเกี่ยวกับวิธีการ Array Push