I am using javascript.
I am new to recursive functions, and cannot seem to figure out how to express this logic recursively:
” Write a function that accepts a string and creates an array where each letter // occupies an index of the array. “
(Firstly,) I think the question is asking me to do the following:
‘Hello’ -> [‘H’, ‘e’, ‘l’, ‘l’, ‘o’];
It is simple enough, but nothing I try seems to be working. I thought the base call could be :
function createArr(str) { let results = []; if (str.length === 0) { return results; }
and then I would recursively return the last letters of the string, and push them out once the stack is returned, like so:
else { var letters = createArr(str.slice(str.length-1)) results.push(letters); return results; } } console.log(createArr('Hello'));
But for some reason nothing seems to be working .. I would really appreciate if someone could clarify this problem for me.
Thanks in advance! 🙂
Advertisement
Answer
You can use recursion with array spread, to create an array, and flatten the results to a single array:
function createArr(str) { if(!str.length) return []; // return an empty array when the string is empty return [ str[0], // take the current letter ...createArr(str.slice(1)) // pass the rest of the string to createArr ] } console.log(createArr('Hello'));