当前位置:  开发笔记 > 编程语言 > 正文

计算对象和所有子项中的字符串总数

如何解决《计算对象和所有子项中的字符串总数》经验,为你挑选了1个好方法。

我有一个对象,可能包含对象(反过来可能包含或不包含对象,等等到无穷大),并带有字符串,如下所示:

var obj = {
    "foo": "hello",
    "bar": "hi",
    "test": {
        "foo": "foo"
        "bar": {
            "test": "hi",
            "hello": "howdy"
        }
    }
}

我想要做的是计算整个obj对象及其子对象的字符串数.在这个例子中,正确的答案是5.

关于计算此站点上的对象中的键的众多主题都建议使用循环.hasOwnProperty或新的Object.keys(obj)方式,但这些都不是递归的,并且它们都计算子对象本身.

完成此任务的最佳方法是什么?



1> Nenad Vracar..:

您可以创建递归函数,循环嵌套对象并返回计数.

var obj = {
  "foo": "hello",
  "bar": "hi",
  "test": {
    "foo": "foo",
    "bar": {
      "test": "hi",
      "hello": "howdy"
    }
  }
}

function countS(data) {
  var c = 0;
  for (var i in data) {
    if (typeof data[i] == 'object') c += countS(data[i]);
    if (typeof data[i] == 'string') c += 1
  }
  return c;
}

console.log(countS(obj))
推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有