在JSON相似的结构中通过ID获取值?

时间:2015-01-28 18:31:32

标签: javascript jquery json

我需要通过id在由某些JSON数据创建的变量中检索对象。 目前我正在使用以下脚本,使用for .. in查看每个对象的每个属性进行搜索。

我想知道:

  • 如果有更快的方法来检索具有特定id的对象?
  • 找到id:3
  • 的父节点的最有效方法是什么
  • 此数据代表什么类型的树结构?

http://jsbin.com/jebukameci/1/

<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <script>
      var data =  {
     id: 0,
      cnt: [
        {
          id: 1,
          cnt: [
            {
              id: 2,
              cnt: [
                {
                  id: 3,
                  cnt:[]
                }
              ]
            }
          ]
        },

      ]
    };



    function getById (id) {
                function getByIdInner(obj, id) {
                    var result;
                    for (var p in obj) {
                        if (obj.id == id) {
                            return obj;
                        } else {
                            if (typeof obj[p] === 'object') {
                                result = getByIdInner(obj[p], id);
                                if (result) {
                                    return result;
                                }
                            }
                        }
                    }
                    return result;
                }
                return getByIdInner(this.data, id);


   }



    </script>

</head>

<body onload="(function(){console.log(getById(3))})();">


</body>

</html>

0 个答案:

没有答案