Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在字符串中循环并使用repeat方法_Javascript - Fatal编程技术网

Javascript 在字符串中循环并使用repeat方法

Javascript 在字符串中循环并使用repeat方法,javascript,Javascript,我试图解决这个练习,目标是给我一个字符串,它必须转换成另一个字符串。新字符串的字符重复出现,如下例所示 例如: acum(“abcd”);//“A-Bb-Ccc-Dddd” 我编写了以下代码: 功能累计器{ 计数器=0; 对于(变量i=0;i

我试图解决这个练习,目标是给我一个字符串,它必须转换成另一个字符串。新字符串的字符重复出现,如下例所示

例如:
acum(“abcd”);//“A-Bb-Ccc-Dddd”

我编写了以下代码:

功能累计器{
计数器=0;
对于(变量i=0;i}
这应该适合您。当您
返回时
循环将停止。你需要把它去掉

功能累计器{
计数器=0;
sA=s.split(“”);
对于(变量i=0;i您可以执行以下操作:

功能累计器{
s=s.toLowerCase();
常量字母=[];
for(设i=0;iconsole.log(acum('ZpglnRxqenU'))您可以结合使用以下方法:,和:

功能累计器{
返回s
.拆分(“”)
.map(功能(e,i){
返回e.toUpperCase()+e.repeat(i);
})
。加入(“-”);
}
console.log(acum('ZpglnRxqenU'))

var str=“abcd”;
功能累积(str){
var arr=str.split(“”);
返回arr.reduce((m,o,i)=>{
m+=(i==0?”:“-”+o.toUpperCase();
对于(var k=0;k控制台日志(ret)这是一个ES6单行程序:

const acum=word=>word.toLowerCase().split(“”.map((字母,索引)=>letter.toUpperCase()+letter.repeat(索引)).join(“”)

log(acum(“ZpglnRxqenU”)
您不需要
s.length==i-1
之类的东西。只需使用
“-”
加入阵列,感谢您如此快速地回答!我试图运行你的代码,但结果得到一个未定义的结果。这是错误:应为“Z-Pp-Ggg-Llll-Nnnnn-RRRRR-Xxxxxxx-QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQEEEEE-NNNNNNNN-UUUUU”,而为:undefined@InnSaei只需使用
returnsa.join('-')
而不是
console.log(sA.join('-'))在我的代码中。感谢您的快速回复,但当我尝试运行您的代码时,我出现了以下错误:预期为:“Z-Pp-Ggg-lll-Nnnnn-rrrrr-Xxxxxxx-qqqqqqq-Eeeeeeeee-nnnnnnnn-uuuuuuuu”,而不是“Z-Pp-Ggg-lll-Nnnnn-rrrrr-Xxxxxxx-qqqqqq-Eeeeeeeee-nnnnuuuuuuuuuuuuuuuuuu”我修复了它,我没有注意到大写的可能性。谢谢你这么快回答!并不是说我嫉妒,但是你在两分钟后发布了和我一样的答案,你得到了2票,我得到了0票,我想知道我为什么要收回这一点