繁体   English   中英

javascript遍历一个对象

[英]javascript traversing through an object

我有一个动态创建的对象。 这是一个简单的例子:

global.data {
    children: [
        0: {
            children:  [
                0: {
                   children: value 
                }
            ]
        }
    ]

}

我想要做的是检查对象 (global.data) 是否具有 'children' 属性,从中获取属性,然后将该对象('children')发送回循环以查看它是否具有 ' 属性孩子们自己的。 我希望它继续运行,直到没有更多的“孩子”可以遍历。

运行一个 while 循环,直到它达到最深。 提琴手

global = {};
global.data = {
    children: [
         {
            children:  [
                 {
                   children: "value"
                }
            ]
        }
    ]
}

var obj = global.data;

while( typeof obj == 'object' && typeof obj.children == 'object'){
  obj = obj.children[0];
}
obj = obj.children ? obj.children  : obj;​
 // at this point obj is either undefined or has no children property. 

考虑使用object-scan 一旦你把头环绕在它周围,它对于数据处理来说是强大的。 下面的示例将仅返回第一个值,但可以通过更改abort轻松更改以返回所有匹配项。

 // const objectScan = require('object-scan'); const input = { children: [{ children: [{ children: 'value' }] }] }; const find = (data) => objectScan(['**(^children$)'], { abort: true, rtn: 'value', useArraySelector: false, filterFn: ({ value }) => typeof value === 'string' })(data); console.log(find(input)); // => value
 .as-console-wrapper {max-height: 100% !important; top: 0}
 <script src="https://bundle.run/object-scan@13.8.0"></script>

免责声明:我是对象扫描的作者

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM