javascript - 遍历字符串并使用 repeat 方法

标签 javascript

我正在尝试解决此练习,其目标是给我一个必须转换为另一个字符串的字符串。新字符串的字符重复如下例所示。

例子: 累积(“abcd”);//"A-Bb-Ccc-Dddd"

我写了下面的代码:

function accum(s) {
  counter = 0;
  for (var i = 0; i < s.length; i++) {
    return s[i].toUpperCase() + s[i].repeat(counter) + "-";
    counter += 1;
  }
}

当我尝试运行诸如 ZpglnRxqenU 之类的示例测试时,我收到此错误:

Expected: 'Z-Pp-Ggg-Llll-Nnnnn-Rrrrrr-Xxxxxxx-Qqqqqqqq-Eeeeeeeee-Nnnnnnnnnn-Uuuuuuuuuuu', instead got: 'Z-'.

显然问题与不起作用的循环有关,但我不明白为什么。

最佳答案

这是一个 ES6 单行代码:

const accum = word => word.toLowerCase().split("").map( (letter,index) => letter.toUpperCase() + letter.repeat(index) ).join("-")
  
console.log( accum("ZpglnRxqenU") )

解释:

  • word.split("") 首先将您的字符串分解为字母数组
  • .map( (letter,index) => 遍历每个字母,边走边跟踪索引
  • letter.toUpperCase() + letter.repeat(index) 用您返回的转换后的值替换每个字母
  • 此时,您有一组转换后的值
  • .join("-") 将所有内容连接回以“-”作为分隔符的字符串。

关于javascript - 遍历字符串并使用 repeat 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46891710/

相关文章:

javascript - 如何在不影响第一个 div 的情况下更改另一个 div 的背景

javascript - 无法访问动态创建的 Javascript div

javascript - 无法使用 Ajax 调用更新 DataTable 的主体

javascript - 尝试在自动完成中的回调函数之一中检索 'term' 参数

javascript - 在 underscore.js 中通过对象键查找

c# - 使用多个表单,在 ASP.NET Web 表单页面上提交按钮

javascript - 在 while 循环中同时发出单个 id 警报

Javascript 隐藏/显示多个元素

javascript - javascript 在使用它的 Prop /方法时是否需要引用对象?

javascript - JSON 参数大小限制