深度遍历对象,并转化成数组

378 阅读1分钟

直接上代码:

function deepTraversalOfObject(obj){
    //准备一个空数组
    let arr = [];
    //遍历开始
    for (const key in obj) {
        //不管每次遍历的数据类型是啥,都先扔到数组里
        arr.push(obj[key])
        //判断数据类型是不是对象,如果是,就先扔出去,再把转化过后的扔进来,如此递归
        //还要判断元素是不是null,因为null的数据类型也是object
        if (typeof obj[key] == 'object' && obj[key]!=null) { 
            arr.pop();
            arr.push(deepTraversalOfObject(obj[key])) 
        }
    }
    return arr;
}

上结果:

image.png

image.png

请各位指正!!!