如果在一个多级的json中,判断是否有某一项,需要怎么操作呢?
比如
var obj = {
a:{
b:{
c:1
}
}
}
要判断 obj中是否含有key 为“c”的子项
有不用循环的方式判断吗?
PHPz2017-04-11 10:48:45
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;
}
===
题主怎么这么苛刻→_→这种东西理论上都是要遍历一遍的不然你怎知下级对象有啥
高洛峰2017-04-11 10:48:45
关联问题
http://segmentfault.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"));