我正在编写一个仅在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"]
}
}
}
}
}
}
}
我们正在尝试从中收集键对象的类型。这是搜索CAR类型的函数,应返回=>“ object”
parseObjectProperties = (obj)=> {
for (var k in obj) {
if(k === "CAR"){
console.log(_.values(obj[k])[0][0]) // When I do a console log like this prin the object value
return _.values(obj[k])[0][0] // but in return i get undefined
}
if ( _.isObject( obj[k]) && !_.isNil(obj[k])) {
return parseObjectProperties(obj[k])
}
}
}
parseObjectProperties(foo);
当我运行它时,内部console.log(_。values(obj [k])[0] [0])显示正确的值:object
但是如果我运行它
console.log(parseObjectProperties(foo));
我明白了
undefined
为什么函数不能正确返回正确的值=>“ object”?
谢谢!
答案 0 :(得分:2)
由于我不了解您使用的逻辑,所以我只是重新写了一下。这样可以解决您的问题吗?
仅供参考,您的对象CAR有一个名为type
的属性,其值是一个包含“ object”和“ null”两个值的数组,因此如果要获取“对象”作为结果。
obj[k].type[0]