拼接字符串并为该值的位置索引添加相同的值?

时间:2017-04-11 19:44:48

标签: javascript splice

我认为我非常接近将这一个搞清楚,但却感到难过。

我正在尝试拼接一个函数所占用的字符串,并为该字符串返回一个为字符串中保存的位置添加的值。

function addString();

当此函数收到如下值时:

let message = "abcd";

它会像这样返回那个值:

console.log(addString(message));
"abbcccdddd"

3 个答案:

答案 0 :(得分:1)

虽然看到你的尝试会很愉快,但试试这个:

function addString(str) {
    var output = "";
    str.split("").forEach(function(i, k) { //Split string up, loop through chars
        output += Array(k+2).join(str[k]);
    });
    return output;
}
    
   var myText = prompt("Enter a word.");
   alert(addString(myText));

您可以使用方法...

创建nc次出现
function repeatChar(n, c){
    return Array(n+1).join(c);
}

我操纵了这个逻辑以适合你的问题,特别是将数组长度增加2而不是1,这样索引0就会被打印一次,等等。

答案 1 :(得分:1)

这是一个简洁的解决方案:)



const result = 'abcd'.replace(/./g, (c, i) => c.repeat(i+1));

document.write(result);




注意:箭头功能,constrepeat都带有ES6。

答案 2 :(得分:1)

您可以映射重复的值并连接到单个字符串。

let message = "abcd",
    result = [...message].map((c, i) => c.repeat(i + 1)).join('');

console.log(result);