আমাদের একটি ফাংশন লিখতে হবে, ধরুন splitNumber() যা একটি পজিটিভ ইন্টিজার নেয় এবং নম্বরের সব ডিজিটের প্লেস ভ্যালু দিয়ে পপুলেটেড একটি অ্যারে রিটার্ন করে।
উদাহরণ:
যদি ইনপুট নম্বরটি হয়:
const num = 1234;
আউটপুট
তবে আউটপুট হবে:
const output = [1000, 200, 30, 4];
এই সমস্যাটি রিকার্সিভ পদ্ধতির জন্য খুব উপযুক্ত কারণ আমরা নম্বরের প্রতিটি ডিজিটের ওপর ইটারেট করব।
অতএব, ডিজিটদের সমশূন্য প্লেস ভ্যালু সহ অ্যারে রিটার্নকারী রিকার্সিভ ফাংশনটি হবে:
উদাহরণ
const splitNumber = (num, arr = [], m = 1) => {
if(num){
return splitNumber(Math.floor(num / 10), [m * (num % 10)].concat(arr), m * 10);
}
return arr;
};
console.log(splitNumber(2346));
console.log(splitNumber(5664));
console.log(splitNumber(3453));
console.log(splitNumber(2));
console.log(splitNumber(657576));
console.log(splitNumber(345232));
আউটপুট
কনসোলে আউটপুট:
[ 2000, 300, 40, 6 ] [ 5000, 600, 60, 4 ] [ 3000, 400, 50, 3 ] [ 2 ] [ 600000, 50000, 7000, 500, 70, 6 ] [ 300000, 40000, 5000, 200, 30, 2 ]