Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ความสำคัญของ Symbol.isConcatSpreadable ใน JavaScript

Symbol.isConcatSpreadable

Well-known Symbol นี้ใช้กำหนดค่าว่าวัตถุควรถูก Flatten เป็น Array Elements เมื่อใช้เมธอด Array.prototype.concat() หากเป็น false จะไม่มีการ Flatten Array เกิดขึ้น โดยค่าเริ่มต้น Symbol.isConcatSpreadable เป็น true ดังนั้นจนกว่าจะระบุชัดเจน การ Flatten ของ Array จะไม่สามารถหลีกเลี่ยงได้

ไม่ใช้ Symbol

ตัวอย่าง

ในตัวอย่างนี้ Symbol.isConcatSpreadable ไม่ได้ระบุชัดเจน ดังนั้นค่าเริ่มต้น Array ถูก Flatten ตาม Output

<html> <body> <script> var arr1 = ['mango', 'apple', 'guava']; var arr2 = ['cashew', 'pista', 'bhadham']; var res1 = arr1.concat(arr2); console.log(res1); </script> </body> </html>

ผลลัพธ์

["mango", "apple", "guava", "cashew", "pista", "bhadham"]

ใช้ Symbol

ตัวอย่าง

ในตัวอย่างนี้ ระบุ Symbol.isConcatSpreadable ชัดเจน ดังนั้น Flattening ของ Array ไม่เกิดขึ้น ตาม Output

<html> <body> <script> var arr1 = ['mango', 'apple', 'guava']; var arr2 = ['cashew', 'pista', 'bhadham']; arr2[Symbol.isConcatSpreadable] = false; var res2 = arr1.concat(arr2); console.log(res2); </script> </body> </html>

ผลลัพธ์

["mango", "apple", "guava", Array(3)]