这是我的任务:


  到目前为止,您应该已经使用了字符串的length属性,例如“ hello” .length。您的任务是编写一个名为stringLength的函数,该函数接受字符串作为参数并计算该字符串的长度。但是,正如您可能已经猜到的那样,不允许您使用字符串的length属性!
  
  相反,您需要使用称为slice的字符串方法。
  就我们的目的而言,我们可以将slice视为一个参数-从其开始进行切片的索引,并从该索引开始返回一个新字符串。


这是我尝试的:

function stringLength(string){
  var count = count++;
  if(string.slice(0)){
     return count}
 return  stringLength(string.slice(0,-1))
 }
console.log(stringLength("game"))


我正在尝试将字符串的每个字符切回起始索引,索引0,然后累积我的count变量。我不明白为什么我的计数变量没有累积。

最佳答案

迭代提案。



function stringLength(string) {
    var count = 0;
    while (string) {
        string = string.slice(1);
        count++;
    }
    return count;
}

console.log(stringLength("game"));





递归建议。



function stringLength(string) {
    return string ? 1 + stringLength(string.slice(1)) : 0;
}

console.log(stringLength("game"));

09-19 03:31