我想id
按值在深层嵌套对象中找到一个对象。我尝试用递归来做,但无法弄清楚为什么“未定义”。
在这段代码中,我在控制台"final result: 234324234"
中有正确的代码,但由于某种原因,这个结果没有从这个函数返回。
请看一下。
let obj = {
"uuid": "344444",
"entityName": "priceFormationPhase",
"id": 2,
"value": "foo",
"children": {
"4": {
"uuid": "44444",
"entityName": "organization",
"id": 4,
"value": "ffffff",
"children": {
"344534": {
"uuid": "33333",
"entityName": "contract",
"id": 928688,
"value": "dh",
"children": {
"345345": {
"uuid": "222222222",
"entityName": "contractPhase",
"id": 234324234,
"value": "111",
"children": {}
}
}
}
}
}
}
};
function findContractStage(obj) {
if ((typeof obj.children === 'object') && (Object.keys(obj.children).length > 0)) {
findContractStage(obj.children);
} else if (typeof obj[Object.keys(obj)[0]] === 'object') {
findContractStage(obj[Object.keys(obj)[0]]);
} else if (obj.entityName) {
console.log(`final result: ${obj.id}`);
return obj.id;
}
}
let contractStageId = findContractStage(obj);
console.log(`contractStageId: ${contractStageId}`);
泛舟湖上清波郎朗
慕侠2389804
暮色呼如
相关分类