我正在尝试解决一个Javascript难题。我需要编写一个函数,使用while循环将字符添加到字符串的开头,然后在下一个循环中将字符添加到字符串的结尾,然后添加到循环的开头。该函数接受两个参数:字符串和要添加的字符数。 到目前为止我已经
了0ffffffffh
我正在通过前两个测试用例但是第三次通过循环无法正常工作。对于n = 3,期望“* * a *”,但只得到“* a”。它必须是一个while循环,所以我不知道我是不是正确设置循环或者我是否搞乱了变量。非常感谢任何帮助,因为我完全迷失了。
答案 0 :(得分:0)
你可以通过编写如下代码来实现,
function padIt(str,n, pad = "*"){
var left = Math.ceil(n/2), right = n - left;
return pad.repeat(left) + str + pad.repeat(right);
}
此功能将打印,
console.log("a", 1); // "*a"
console.log("a", 2); // "*a*"
console.log("a", 10); // "*****a*****"
实现此代码后需要阅读
答案 1 :(得分:0)
您需要评论newStr+=padding;
行。
这是精炼的代码,
function padIt(str,n){
//coding here
var newStr = "";
var padding = "*";
var i = 0;
while(i<=n){
i++;
newStr=padding+str;
//newStr+=padding;
}
return newStr;
}
HTH