accum("abcd")
-> "A-Bb-Ccc-Dddd"
accum("RqaEzty")
-> "R-Qq-Aaa-Eeee-Zzzzz-Tttttt-Yyyyyyy"
accum("cwAt")
-> "C-Ww-Aaa-Tttt"
const accum = (str) => {
let res = '';
for (i = 1; i < str.length; i++) {
if (i == str.length) {
res = str[i] * i;
}
return res;
}
}
const xxx = str => Array
.from(str, (n, i) => n.toUpperCase() + n.toLowerCase().repeat(i))
.join('-');
const xxx = str => str
.toUpperCase()
.split('')
.reduce((acc, n, i) => `${acc}${i ? '-' : ''}${n}${Array(-~i).join(n.toLowerCase())}`, '');
const xxx = str => str
.toUpperCase()
.replace(/(?<=.)./g, (m, i) => '-'.concat(m, ...Array(i).fill(m.toLowerCase())));
('a').toUppercase() // "A"
и добавить хвост из повторов строчной после ('A').toLowerCase() // "a"
. ("x").repeat(3) // "xxx"
map(func)
вторым аргументом передаёт в функцию внутри индекс элемента: 0, 1, 2, ...
[ ...'acdc' ] // [ "a", "c", "d", "c" ]
const accum = alph => [...alph]
.map((c, i) => c.toUpperCase() + c.toLowerCase().repeat(i))
.join('-');