เราจำเป็นต้องเขียนฟังก์ชันที่ให้ตัวเลข 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 ]