เราต้องเขียนฟังก์ชันที่รับตัวเลข เช่น 123 และคืนค่าอาร์เรย์:
[100, 20, 3]
โดยพื้นฐานแล้ว ฟังก์ชันคาดหวังให้คืนค่าอาร์เรย์ที่มีค่าตำแหน่ง (place value) ของทุกหลักในตัวเลขที่รับเข้ามา
เราสามารถแก้ปัญหานี้ได้โดยใช้วิธีการ recursive
ตัวอย่าง
โค้ดต่อไปนี้เป็นตัวอย่าง:
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 ]