We are required to write a JavaScript function that takes in a string and reverses the words in the string that have an odd number of characters in them.
Any substring in the string qualifies to be a word, if either it is encapsulated by two spaces on either ends or present at the end or beginning and followed or preceded by a space.
Let’s say the following is our string −
const str = 'hello beautiful people';
The odd length words are −
hello beautiful
Example
Let us write the code for this function.
const str = 'hello beautiful people'; const idOdd = str => str.length % 2 === 1; const reverseOddWords = (str = '') => { const strArr = str.split(' '); return strArr.reduce((acc, val) => { if(idOdd(val)){ acc.push(val.split('').reverse().join('')); return acc; }; acc.push(val); return acc; }, []).join(' '); }; console.log(reverseOddWords(str));
Output
Following is the output in the console −
olleh lufituaeb people