js深度遍历对象的属性

前端考试题(3.11)
如何深度遍历一个对象的属性
代码实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function optionalChaining(obj, chain) {
if (obj === null || obj == undefined) {
return 'undefined';
}
if(!(/./g).test(chain) && obj[chain]) {
return obj[chain];
}
var arr = chain.split('.');
var len = arr.length,
i=0;
var local = '';
var local = arr.shift();
for (key in obj) {
// console.log(key === local && obj[key] instanceof Object )
if (key === local && obj[key] instanceof Object ) {
return optionalChaining(obj[key], arr.join('.'));
}
}
return 'undefined' ;
}