猿问

JavaScript:使用带有嵌套对象和数组的对象参数并返回字符串元素的计数

我有以下问题:


//创建一个函数strCount(以一个对象作为参数),该函数将计算对象内部的所有字符串值。例如:


下面的代码似乎可以正常工作并给出正确的答案:4但我不太明白为什么。


function strCount(obj){



  var count = 0;


  for (var val in obj){

    if(typeof obj[val] === 'object'){

     count += strCount(obj[val]);

    }

      if (typeof obj[val] === 'string'){

        count++;

      }

  }

    return count;

}



strCount({

  first: "1",

  second: "2",

  third: false,

  fourth: ["anytime", 2, 3, 4, 'hello'],

  fifth:  null

  })

  //returns 4

具体来说,该函数如何计算嵌套数组中的元素(“随时”和“你好”)?


慕神8447489
浏览 218回答 2
2回答

慕侠2389804

该函数使用递归,这意味着它会自行调用以找出嵌套计数。另外,请记住,数组本质上是对象(将它们视为特殊的对象类型)。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答