首页 > js 中如何判断一个json对象中是否含有某个key

js 中如何判断一个json对象中是否含有某个key

如果在一个多级的json中,判断是否有某一项,需要怎么操作呢?

比如

var obj = {
            a:{
                b:{
                    c:1
                }
            }
        }

要判断 obj中是否含有key 为“c”的子项

有不用循环的方式判断吗?


JSON.stringify()之后再查找字符串,注意排除包含关系的就可以了。


可以考虑jsonpath,当然本质上还是要遍历的


关联问题
http://.com/q/1010000004329153

function containsKey(target,key) {
    if (typeof target !== "object" || typeof key !== "string") return false;
    return Object.keys(target)
        .some(k=>(k===key) || containsKey(target[k],key));
}

var lzObj = {
            a:{
                b:{
                    c:1
                }
            }
        }

console.log(containsKey(lzObj,"c"));

function find (obj, key) {
    if (! typeof obj === 'object') return false;
    if (key in obj) return true;
    for (var k in obj) if find(obj[k], key) return true;
    return false;
}

===

题主怎么这么苛刻→_→这种东西理论上都是要遍历一遍的不然你怎知下级对象有啥


if (typeof obj.key !== "undefined") {
    do...
} else {
    do...
}
【热门文章】
【热门文章】