สมมติว่าเรามีอาร์เรย์ของอาร์เรย์ที่มีองค์ประกอบแบบนี้:
const arr = [3, 5, 7, 2, [4, NaN, null, 4, 8, [3, undefined, 24, null], null, 5, 1], NaN, 45, 2, 1];
หน้าที่ของเราคือเขียนฟังก์ชันเรียกซ้ำที่รับอาร์เรย์ซ้อนนี้และแทนที่ค่า falsy ทั้งหมดในอาร์เรย์ (NaN, undefined และ null) ด้วย 0
มาเขียนโค้ดสำหรับฟังก์ชันนี้กัน:
ตัวอย่างโค้ด
const arr = [3, 5, 7, 2, [4, NaN, null, 4, 8, [3, undefined, 24, null], null, 5, 1], NaN, 45, 2, 1];
const recursiveSimplify = (arr) => {
for (let i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
recursiveSimplify(arr[i]);
} else if (!arr[i]) {
arr[i] = 0;
}
}
};
recursiveSimplify(arr);
console.log(arr);
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้:
[ 3, 5, 7, 2, [4, 0, 0, 4, 8, [3, 0, 24, 0], 0, 5, 1], 0, 45, 2, 1 ]