如何使用Javascript重复字符串中的字符?

时间:2016-04-17 03:08:09

标签: javascript string

如何让字符串中的单个字符重复给定的次数?

也就是说,如何将“XyZ”变成“XXXyyyZZZ”?

4 个答案:

答案 0 :(得分:0)

您需要使用一些功能的组合。首先,您需要将字符串拆分为单个字符:

var charArray = "XyZ".split('');

将它拆分后,您可以结合使用.map函数和javascript Array的漂亮小技巧。

var someMultiplier = 5;
var duplicatedArray = charArray.map(function(char) {
  return Array(someMultiplier).join(char);
});

此时,您有一个包含重复字母的字符串数组,您可以将它们与.join

组合在一起
var dupString = duplicatedArray.join('');
dupString === "XXXXXyyyyyZZZZZ

答案 1 :(得分:0)

你没有提到如果输入会像xyxzy那样会发生什么。假设它是xxxyyxxxzzzyyy

// function takes input string & num of repitation
function buildString(input, num) {
    var _currentChar = ""; // Final output string
    for (var m = 0; m < input.length; m++) {
        //call another function which will return XXX or yyy or zzz & then finally concat it
        _currentChar += _repeatString((input.charAt(m)), num);
    }
}
// It will return XXX or yyy or ZZZ 
// takes individual char as input and num of times to repeat
function _repeatString(char, num) {
    var _r = "";
    for (var o = 0; o < num; o++) {
        _r += char;
    }
    return _r
}
buildString('XyZ', 3)

jsfiddle for Example

答案 2 :(得分:0)

试试这个:

var foo = 'bar';

function makeString(str, repeat) {
  var str = Array.prototype.map.call(str, function(character) {
    var nascentStr = '';
    while (nascentStr.length < repeat) {
      nascentStr += character;
    }
    return nascentStr;
  }).join('');
  return str;
}

alert(makeString(foo, 3));

答案 3 :(得分:0)

听起来很直接。您可以在浏览器的控制台中运行它:

var my = 'XyZ';

function repeat(str, times) {
  var res = '';
  for (var i in str) {
    var char = str[i];
    for (var j=0; j < times; j++) {
      res += char;
    }
  }

  return res;
}

var his = repeat(my, 3);
console.log(his);