Javascript 如何拆分字符串并重复字符?

Javascript 如何拆分字符串并重复字符?,javascript,arrays,string,Javascript,Arrays,String,我试图将数组=[A,B,C,D]转换为数组=[A,BB,CCC,dddddd]。如果比较数组,您会注意到第二个数组中的字母在每个位置都有额外的相同字母。下面是我的代码。我使用for循环是因为我想在for循环中使用增量。我甚至不知道map方法是否也能做到这一点,所以我选择了for循环。然而,当我检查时,它没有显示我想要的结果。我错过了什么 功能累积{ //你的代码 让accArray=s.toUpperCase.split; 对于let i=1;i{ arr.push.repeatedindex

我试图将数组=[A,B,C,D]转换为数组=[A,BB,CCC,dddddd]。如果比较数组,您会注意到第二个数组中的字母在每个位置都有额外的相同字母。下面是我的代码。我使用for循环是因为我想在for循环中使用增量。我甚至不知道map方法是否也能做到这一点,所以我选择了for循环。然而,当我检查时,它没有显示我想要的结果。我错过了什么

功能累积{ //你的代码 让accArray=s.toUpperCase.split; 对于let i=1;i 必须在特定索引处分配新的返回值:

功能累积{ //你的代码 让accArray=s.toUpperCase.split; 对于let i=1;iaccumabcd您需要将值推送到数组中,或将值赋回该索引,repeat不会改变原始值,它返回一个新字符串,因此您需要将其赋回

功能累积{ //你的代码 让accArray=s.toUpperCase.split; 让op=[] 对于let i=0;iaccumabcd实现所需输出的更简洁的方法是使用:

const accum=s=>s.toUpperCase 分裂 .maps,i=>s.repeati+1; console.logaccumabcd 您可以使用forEach或map作为迭代器完美地工作

功能累积{ //你的代码 让accArray=s.toUpperCase.split; 常数arr=[]; accArray.forEache,索引=>{ arr.push.repeatedindex+1 } console.logarr; }
accumabcd如果您的输入已经是类似于

arr = ['a', 'b', 'c', 'd']
然后你可以用

arr.map((item, idx) => item.repeat(idx+1))
如果你有像绳子一样的

str = 'abcd'
然后您可以使用:

str.split('').map((item, idx) => item.repeat(idx+1);

字符串和所有原语都是不可变的。对于重复和替换等特定方法中的字符串,返回一个带有修改值的新字符串,原始字符串保持不变。@VLAZ哦,对了!我完全忘记了repeat返回一个新字符串。谢谢你的提醒@弗拉兹,你为什么把我的问题标记为重复的?我看了另一个问题,它没有回答我的问题。另一个问题是关于substr方法,而我问的是repeat方法和map方法。String是不可变的。任何更改字符串的方法实际上都会返回一个新字符串-repeat、replace、substr、slice、toUpperCase等等。所有这些都不会更改调用它们的字符串-当答案相同时,不需要为每个方法编写相同的答案-您必须调用该方法并在某个位置赋值。@VLAZ true,字符串是不可变的。然而,另一个问题主要是讨论解决方案和使用substr、slice等。事实上,另一个问题是一个广泛的问题。你提到的那句话只是最好的解决办法中的一段。我的问题是具体的,并缩小到地图和重复的方法。这就是与另一个问题不同的地方。我发现马蒙的答案更好,原因是,这个答案利用了现有的变量,而不是创建一个新的。@KrishnaPrashatt我遵循规则,除非有必要,否则不变异我的变量,因此,我使用了一个不同的变量。显然,在传递上述代码之前,您可以对字符串使用大写或小写。
str.split('').map((item, idx) => item.repeat(idx+1);