Partitioning input strings by even and odd indexes
One possible solution that achieves the described result is:

`${s.replace(/./g, (s, pos) =&gt; [s, ''][pos &amp; 1])} ${s.replace(/./g, (s, pos) =&gt; ['', s][pos &amp; 1])}`


...But in order to answer to your question:

// 0
let wordsArr = words.map((val) =&gt; {
    return val.split("");
})

// can be rewritten as
let wordsArr = words.map(val =&gt; val.split(''))

// 1
for (let i = 0, len = wordsArr.length; i &lt; len; i++){

// personally I use
i += 1
// following to Douglas Crockford
// this is what actually happens under the hood

// 2
if (j % 2 === 0){
   even += wordsArr[i][j]
} else if (j % 2 !== 0) {
   odd += wordsArr[i][j];
}

// can be symplified to
[even, odd][j &amp; 1] += wordsArr[i][j];


Happy coding!