对象递归获取所有值

遍历json所有的key,如果当前层的某个key对应的值是object或者数组的话就继续递归,如果其他值就是具体的值了!

上代码

//json递归所有值
function jsonRQA(object, cb) {
    for (let key in object) {
        if (object.hasOwnProperty(key)) {
            const element = object[key];
            if (Object.prototype.toString.call(element) ===
                "[object Array]" ||
                Object.prototype.toString.call(element) ===
                "[object Object]") {
                jsonRQA(element);
            } else {
                if (cb) {
                    cb();
                } else {
                    console.log(element);
                }
            }
        }
    }
}

附送js判断对象和数组

var a = {};
var b = [];
console.log(Object.prototype.toString.call(a) === '[object Object]');//判断对象 返回true
console.log(Object.prototype.toString.call(b) === '[object Array]');//判断数组 返回true
当然 '[object Date]'是用来判断日期 '[object RegExp]' 是用来判断正则表达式

你可能感兴趣的:(对象递归获取所有值)