Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
复杂对象中的键存在下划线JavaScript查找值_Javascript_Json_For Loop_Underscore.js - Fatal编程技术网

复杂对象中的键存在下划线JavaScript查找值

复杂对象中的键存在下划线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": [],

我有以下JSON格式,它是动态的,也就是说,孩子的数量可以随时不同

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消息的子对象实例?或者您想知道是否所有消息都是非空的?