Looking at the title, you might think it's a simple task that any noob can complete. right??
However, the actual question was, write a function that accepts an args as a number and returns the string version of the same number, given that you cannot use string methods like function toString(), or initialise a variable with an empty string, or use any other tricks.
So we will approach this problem by keeping two points in mind
- Every number is formed from digits 0-9;
- Divide and conquer rule
- Recursion
let stringNum;
const arr = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
let temp;
function convertToString(num) {
if (num > 0) { // condition will give the string but in reverse order.
const dividend = num % 10;
if (temp) {
temp += arr[dividend];
} else {
temp = arr[dividend];
}
convertToString(Math.floor(num / 10)); // recursion
} else {
// here we will reverse the string to get the actual number in string format.
for (let i = temp.length - 1; i >= 0; i--) {
if (stringNum) {
stringNum += temp.charAt(i);
} else {
stringNum = temp.charAt(i);
}
}
}
return stringNum;
}
const result = convertToString(125)
console.log(result) // "125"
Please give it a shot and let me know what you think.
Please ❤️ it and share it your with friends or colleagues. Spread the knowledge.
Thats all for now. Keep learning and have faith in Javascript❤️
Top comments (2)
man, that's insane hahahaha but it was very creative... congrats!
Thanks 😊