Вы можете использовать Array.map
и String.split
, String.join
, чтобы получить этот результат.Нанесите на карту слова и затем введите каждый символ, а если он прописной, то еще строчный.
const up = string =>
string.split(' ')
.map(word => word.split('')
.map((chr, i) => chr[i%2 ? 'toLowerCase' : 'toUpperCase']()).join('')
).join(' ')
console.log(up('This is a test'))
Вы также можете решить эту проблему только с одним Array.map
и Array.reduce
:
const chg = wrd => wrd.split('').map((c,i) => c[i%2 ? 'toLowerCase' : 'toUpperCase']()).join('')
const up = str => str.split(' ').reduce((r,c) => r.concat(' ', chg(c)), '')
console.log(up('This is a test'))