Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

วิธีการผสานอาร์เรย์ใน Vanilla JavaScript (ES5 และ ES6)

ก่อนหน้านี้คุณได้เรียนรู้วิธีการเพิ่มและลบรายการออกจากอาร์เรย์โดยใช้ 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