Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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_Node.js_Recursion_Undefined - Fatal编程技术网

Javascript 为什么箭头函数返回未定义

Javascript 为什么箭头函数返回未定义,javascript,node.js,recursion,undefined,Javascript,Node.js,Recursion,Undefined,我正在编写一个函数,它只是在Json模式中循环。假设我们有一个简单的json模式,例如: var foo = { "description": "A car schema", "type": "object", "properties": { "_id": { "type": "string" }, "_rev": { "type": "string" }, "sources": { "type":

我正在编写一个函数,它只是在Json模式中循环。假设我们有一个简单的json模式,例如:

    var foo = {
  "description": "A car  schema",
  "type": "object",
  "properties": {
    "_id": {
      "type": "string"
    },
    "_rev": {
      "type": "string"
    },
    "sources": {
      "type": "object",
      "properties": {
        "mam": {
          "type": "object",
          "properties": {
            "source_id": {
              "type": [ "integer", "null" ]
            },
            "SOR": {
              "type": ["boolean","null"]
            }
          }
        },
        "sas": {
          "type": "object",
          "properties": {
            "source_id": {
              "type": "string"
            },
            "SOR": {
              "type": ["boolean","null"]
            },
            "CAR": {
              "type": ["object","null"]
            }
          }
        }
      }
    }
  }
}
我们正在尝试从中收集密钥对象的类型。下面是搜索汽车类型应返回=>“对象”的函数

当我运行它时,内部console.log(j.values(obj[k])[0][0])显示正确的值:object

但如果我运行它

console.log(parseObjectProperties(foo));
我明白了

为什么函数不能正确返回正确的值=>“object”


谢谢大家!

我只是重新写了这篇文章,因为我不理解您使用的逻辑。这能解决你的问题吗

仅供参考,您的对象CAR有一个名为
type
的属性,其值是一个数组,其中包含两个值,“object”和“null”,因此您希望使用
obj[k]。如果希望得到“object”,请键入[0]

const parseObjectProperties=(obj)=>{
var结果=null;
用于(obj中的var k)
如果(k==“CAR”)返回obj[k],则键入[0];
else if(对象的obj[k]实例)
结果=parseObjectProperties(obj[k]);
返回结果;
}
变量foo={
“描述”:“汽车模式”,
“类型”:“对象”,
“财产”:{
“_id”:{
“类型”:“字符串”
},
“_rev”:{
“类型”:“字符串”
},
“资料来源”:{
“类型”:“对象”,
“财产”:{
“妈妈”:{
“类型”:“对象”,
“财产”:{
“来源id”:{
“类型”:[“整数”,“空”]
},
“SOR”:{
“类型”:[“布尔”,“空”]
}
}
},
“sas”:{
“类型”:“对象”,
“财产”:{
“来源id”:{
“类型”:“字符串”
},
“SOR”:{
“类型”:[“布尔”,“空”]
},
“汽车”:{
“类型”:[“对象”,“空”]
}
}
}
}
}
}
}

log(parseObjectProperties(foo))
这是一个典型的递归错误,忘记了返回递归调用。您需要返回parseObjectProperties(obj[k])我添加了返回值,但仍然是相同的错误。请匹配您当前拥有的内容。这是添加返回到``返回parseObjectProperties(obj[k])后更新的代码。@MohamedEshaftri真棒,很高兴提供帮助!你能点击左边的复选标记接受我的答案吗?谢谢
console.log(parseObjectProperties(foo));
undefined