扫码关注官方订阅号
昨天面试官问的题目,没答上来;
比如[{a:[{b:1,c:[{d:1},{e:1}]},{f:1},...]
就是一个数组,数组里面有多个对象,对象的值也是数组,数组里面还是对象,反复循环,现在要你输出这个数组里对象所有的属性名:
差不多就是一个树的结构。
要你编写函数方法来打印所有树及其节点上的属性名。
认证高级PHP讲师
function sayKeyName(obj){ function sayName(obj){ if (!(obj instanceof Array) && !(obj instanceof Object)) { throw new TypeError('obj 类型错误!'); } if (obj instanceof Array) { for (var i = 0; i < obj.length; ++i) { console.log('对象属性名:' , i); if (obj[i] instanceof Object) { sayName(obj[i]); } } } else { for (var key in obj) { console.log('对象属性名:' , key); if (obj[key] instanceof Object) { sayName(obj[key]); } } } } sayName(obj); } var obj = [ {a: [ { b:1, c:[ {d:1}, {e:1} ] }, {f:1} ] } ]; sayKeyName(obj); F12查看结果...
function printAttr(node) { if (node instanceof Array) { for (var i in node) { printAttr(node[i]); } } else if (node instanceof Object) { for (var p in node) { console.log(p); printAttr(node[p]); } } }
已通过测试,谢谢。
你们学校没开数据结构课程吗?这只是一个入门的树遍历问题啊...
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
已通过测试,谢谢。
你们学校没开数据结构课程吗?这只是一个入门的树遍历问题啊...