Chúng ta được yêu cầu viết một hàm đệ quy, chẳng hạn như pushRecursently (), hàm này nhận vào một mảng số và trả về một đối tượng chứa các thuộc tính lẻ và chẵn trong đó lẻ là một mảng các số lẻ từ mảng đầu vào và thậm chí là một mảng số chẵn từ mảng đầu vào. Điều này phải hoàn thành bằng cách sử dụng đệ quy và không có loại phương pháp lặp nào được sử dụng.
Ví dụ
const arr = [12,4365,76,43,76,98,5,31,4]; const pushRecursively = (arr, len = 0, odd = [], even = []) => { if(len < arr.length){ arr[len] % 2 === 0 ? even.push(arr[len]) : odd.push(arr[len]); return pushRecursively(arr, ++len, odd, even); }; return { odd, even } }; console.log(pushRecursively(arr));
Trong khi biến len đến cuối mảng, chúng ta tiếp tục gọi hàm một cách đệ quy, mỗi lần đẩy các giá trị lẻ sang mảng lẻ và giá trị evens sang mảng chẵn và khi biến len yêu cầu độ dài của mảng, chúng ta thoát ra khỏi hàm trả về đối tượng .
Đầu ra
Đầu ra của mã này trong bảng điều khiển sẽ là -
{ odd: [ 4365, 43, 5, 31 ], even: [ 12, 76, 76, 98, 4 ] }