84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
如果在一个多级的json中,判断是否有某一项,需要怎么操作呢?
比如
var obj = { a:{ b:{ c:1 } } }
要判断 obj中是否含有key 为“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; }
===
题主怎么这么苛刻→_→这种东西理论上都是要遍历一遍的不然你怎知下级对象有啥
JSON.stringify()之后再查找字符串,注意排除包含关系的就可以了。
JSON.stringify()
关联问题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"));
if (typeof obj.key !== "undefined") { do... } else { do... }
可以考虑jsonpath,当然本质上还是要遍历的
这样的多级json结构需要遍历
===
题主怎么这么苛刻→_→这种东西理论上都是要遍历一遍的不然你怎知下级对象有啥
JSON.stringify()
之后再查找字符串,注意排除包含关系的就可以了。关联问题
http://segmentfault.com/q/1010000004329153
可以考虑jsonpath,当然本质上还是要遍历的
这样的多级json结构需要遍历