เราจำเป็นต้องเขียนฟังก์ชันที่ให้ตัวเลข 123 ออกมาเป็นอาร์เรย์ −
[100,20,3]
โดยทั่วไป ฟังก์ชันนี้คาดว่าจะส่งคืนอาร์เรย์ที่มีค่าตำแหน่งของตัวเลขทั้งหมดที่มีอยู่ในตัวเลขที่ฟังก์ชันใช้เป็นอาร์กิวเมนต์
เราสามารถแก้ปัญหานี้ได้โดยใช้วิธีการแบบเรียกซ้ำ
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const num = 123; const placeValue = (num, res = [], factor = 1) => { if(num){ const val = (num % 10) * factor; res.unshift(val); return placeValue(Math.floor(num / 10), res, factor * 10); }; return res; }; console.log(placeValue(num));
ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ในคอนโซล -
[ 100, 20, 3 ]