如何让字符串中的单个字符重复给定的次数?
也就是说,如何将“XyZ”变成“XXXyyyZZZ”?
答案 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)
答案 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);