如果在一个多级的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...
}