เราต้องเขียนฟังก์ชัน เช่น searchRecursively() ที่รับอาร์เรย์และคำค้นหา และคืนค่าจำนวนของคำค้นหานั้นในอาร์เรย์ซ้อน (nested array)
ตัวอย่าง ถ้าอาร์เรย์กำหนดโดย −
const names = ["rakesh", ["kalicharan", "krishna", "rakesh", "james", ["michael", "nathan", "rakesh", "george"]]];
แล้ว −
searchRecursively(names, 'rakesh');
ควรคืนค่า 3 เพราะปรากฏทั้งหมด 3 ครั้งในอาร์เรย์ ดังนั้น มาเขียนโค้ดสำหรับฟังก์ชันเวียนเกิดนี้
ตัวอย่าง
const names = ["rakesh", ["kalicharan", "krishna", "rakesh", "james", ["michael", "nathan", "rakesh", "george"]]]; const searchRecursively = (arr, query, count = 0, len = 0) => { if(len < arr.length){ if(Array.isArray(arr[len])){ return searchRecursively(arr[len], query, count, 0); }; if(arr[len] === query){ return searchRecursively(arr, query, ++count, ++len); }; return searchRecursively(arr, query, count, ++len); }; return count; }; console.log(searchRecursively(names, "rakesh"));ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็นดังนี้
3