วิธี flat
วิธี flat ลดระดับ
ความซ้อนของอาเรย์หลายมิติ
สามารถทำให้อาเรย์เป็นหนึ่งมิติ
หรือลดมิติตามค่าที่กำหนด
ไวยากรณ์
let newArray = อาเรย์.flat(ระดับการยกขึ้น);
ตัวอย่าง
ลองรับอาเรย์ใหม่ โดยไม่ระบุค่าใดๆ ใน พารามิเตอร์:
let arr = ['a', 'b', ['c', 'd']];
let res = arr.flat();
console.log(res);
ผลจากการรันโค้ด เราจะเห็นว่าซับอาเรย์ถูกยกขึ้นมา หนึ่งระดับ:
['a', 'b', 'c', 'd']
ตัวอย่าง
ทีนี้ลองใช้วิธี
flat กับอาเรย์ที่มีสองระดับ
ความซ้อน:
let arr = ['a', 'b', ['c', 'd', ['e', 'f']]];
let res = arr.flat();
console.log(res);
ผลจากการรันโค้ด:
['a', 'b', 'c', 'd', ['e', 'f']]
ตัวอย่าง
ลองระบุระดับความซ้อน:
let arr = ['a', 'b', ['c', 'd', ['e', 'f']]];
let res = arr.flat(2);
console.log(res);
ผลจากการรันโค้ด:
['a', 'b', 'c', 'd', 'e', 'f']
ตัวอย่าง
หากเราไม่อยากกังวลกับระดับความซ้อน
แต่ต้องการรวมอาเรย์ทั้งหมด ให้ใช้พารามิเตอร์ Infinity:
let arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flat(Infinity);
console.log(res);
ผลจากการรันโค้ด:
[
'a', 'b', 'c',
'd', 'e', 'f',
'g', 'h', 'i'
]
ดูเพิ่มเติม
-
วิธี
flatMap,
ซึ่งคืนค่าอาเรย์จากองค์ประกอบหลังจากใช้ฟังก์ชัน