复杂对象中的键存在下划线JavaScript查找值
我有以下JSON格式,它是动态的,也就是说,孩子的数量可以随时不同复杂对象中的键存在下划线JavaScript查找值,javascript,json,for-loop,underscore.js,Javascript,Json,For Loop,Underscore.js,我有以下JSON格式,它是动态的,也就是说,孩子的数量可以随时不同 var Obj = { "name": "A", "count": 13, "children": [{ "name": "B", "count": 24, "children": [{ "name": "C", "count": 35, "children": [],
var Obj = {
"name": "A",
"count": 13,
"children": [{
"name": "B",
"count": 24,
"children": [{
"name": "C",
"count": 35,
"children": [],
"msg": null
},{
"name": "D",
"count": 35,
"children": [],
"msg": "Err"
}]
}]
}
如何在整个对象Obj中找到msg是否不为null?我尝试使用循环对象,但此格式不一致,因为对象中的子数组是动态的。我不熟悉下划线,是否仍要使用下划线JavaScript进行检查?在纯js中,您可以使用
for··················································
var Obj={“name”:“A”,“count”:13,“children”:[{“name”:“B”,“count”:24,“children”:[{“name”:“C”,“count”:35,“children”:[],“msg”:null},{“name”:“D”,“count”:35,“children”:[],“msg”:“Err”}]}
函数notNull(obj){
var结果=真;
用于(obj中的var i){
如果(i=='msg'&&obj[i]==null)结果=false;
否则,如果(对象类型[i]=“object”)结果=notNull(对象类型[i]);
如果(结果==假)中断;
}
返回结果;
}
console.log(notNull(Obj))
是在库下面划线,该库可以提供如下帮助:-
_.each(Obj.children,function(item){ //it will take item one by one and do
// processing
if(item.msg){
//DO YO THING
}
return;
})
如果我没弄错你的问题
var anyMsgNotNull = (_.filter(Obj.children, function(child) {
return (child.msg !== null);
})).length > 0;
如果有任何msg元素不为null,则返回true,否则返回false。您是否也在寻找纯js解决方案,还是只寻找下划线.js解决方案?一切正常您希望函数返回什么?它是某种具有属性name
的对象数组,其中消息为null或类似的东西吗?您能否澄清一下:您想确定是否确实存在任何具有非null消息的子对象实例?或者您想知道是否所有消息都是非空的?