首页 > 解决方案 > 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

具体来说,函数如何计算嵌套数组中的元素('anytime' 和 'hello')?

标签: javascriptarraysobjectrecursionnested

解决方案


该函数使用递归,这意味着它调用自身来计算嵌套计数。另外,请记住,数组本质上是对象(将它们视为一种特殊类型的对象)。


推荐阅读