我需要以这种方式在一个字母数组中重复每个字母:
例如[a,b,c,d] => a,bb,ccc,dddd
我猜这部分有问题:splitStr.indexOf(x)+ 1)
您能否看一下,并给我提示一下这里出了什么问题?谢谢。 (最终结果应为字符串形式的A-Bb-Ccc-Dddd)
function accum(s) {
var splitStr = s.toLowerCase().split('') // [a, b, c, d]
var arr = splitStr.map(x => x.repeat(splitStr.indexOf(x) + 1)) // [a, bb, ccc, ddd]
arr = arr.map(a => a.slice(0, 1).toUpperCase() + a.slice(1).toLowerCase())
return arr.join('-')
}
console.log(accum('abcd'))
最佳答案
使用map()
回调的index参数并将其保存在数组中再次查找。
您也可以将其合并为一个map()
而不是两个
function accum(s) {
var splitStr = s.toLowerCase().split('') // [a, b, c, d]
var arr = splitStr.map((x, i) => x.toUpperCase() + x.repeat(i));
return arr.join('-')
}
console.log(accum('abcd'))
关于javascript - 将indexOf()值增加一,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55463143/