javascript - 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')?
解决方案
该函数使用递归,这意味着它调用自身来计算嵌套计数。另外,请记住,数组本质上是对象(将它们视为一种特殊类型的对象)。
推荐阅读
- php - 使用 PHP 将 HTML 标记转换为动态标记
- xamarin - 如何在 Xamarin 中绑定 ViewModel 的结果
- postgresql - Postgres 13 - 创建菜单快捷方式时出现非致命错误(Big Sur)
- r - R ggplot 在使用对数刻度时设置原点
- javascript - 如何在 Firefox 中通过控制台查看 HTML DOM 结构?
- python - 为什么 Miniconda 没有运行最新版本的 Spyder?
- webpack - 如何捆绑无法引用的文件(WebPack 5)
- kubernetes - 如何在具有多个副本的 kubernetes 上设置 kafka
- javascript - React - 在 useEffect() 中调用 useTimer() 时调用无效的钩子
- vue.js - 具有延迟加载的 Vue 命名视图