我该如何记住上一个修改声明

时间:2018-08-15 13:43:40

标签: javascript

我该如何记住上一个修改语句。 因为此代码是始终重新初始化str变量。

但是我必须做一个循环,在我的str中加上一个加号“ *”。这就是为什么我要“保存”上一条语句的原因。

以上,我发布了测试结果。

function padIt(str, n) {
    do {
        if (n % 2 === 0) {
            str + "*";
        }
        else {
            str = "*" + str;
        }
    } while (n > 5)
    return str;
}

我明白了:

Test Passed: Value == '\'*a\''
Expected: '\'*a*\'', instead got: '\'a\''
Expected: '\'**a*\'', instead got: '\'*a\''
Expected: '\'**a**\'', instead got: '\'a\''

2 个答案:

答案 0 :(得分:1)

您在+=区块中缺少if。应该是str += "*";

function padIt(str, n) {
  do {
    if (n % 2 === 0) {
      str += "*";
    } else {
      str = "*" + str;
    }
  } while (n > 5)
  return str;

}

答案 1 :(得分:0)

我认为您确实希望padIt函数是递归的。如果是这样,我们可以通过在每个递归调用的每一侧添加一些填充来尝试这种解决方案。基本情况发生在n计数器达到1时,在这种情况下,我们只返回累积构建的填充字符串。

padIt = function(str, n) {
    if (n === 1) return str;
    if (n%2 === 0) {
       return padIt(str + "*", n-1);
    }
    else {
       return padIt("*" + str, n-1);
    }
}

console.log(padIt("a", 5));