通过for in循环将对象的属性名放入数组中
let o = { a: 1, x: { b: 2, c: { d: 1 } } }
// 其中x,c的属性值是一个对象
let list = []
function getList (o) {
for (let item in o) {
list.push(item) // 将属性名放入list数组中
if (typeof o[item] === 'object') {
// 如果属性对应的属性名为对象,则重新调用getList函数
getList(o[item])
}
}
}
getList(o) // 最外层o对象首次调用getList函数
console.log(list)