Nodejs,如何获取嵌套的json对象的值,中间键是未知的

我有以下嵌套的configuration对象,我想获得key1的值,这意味着我想返回“value1”,key1是静态的,但randomGeneratedNumber和randomGeneratedName是dynamic的从数据库。

configuration:{ randomGeneratedNumber: { randomGeneratedName: { key1: value1, key2: value2 } } } 

如果你知道每个级别都有(至less)一个键,你可以用辅助函数和组合来完成:

 var obj = { configuration: { randomGeneratedNumber: { randomGeneratedName: { key1: 'value1', key2: 'value2' } } } }; function firstValue(a) { return a[Object.keys(a)[0]]; } console.log(firstValue(firstValue(obj.configuration)).key1); 

dynamic的,你可以做到这一点..我希望这可以帮助或让你头一个问题的方式。 🙂

 var config = {configuration:{ randomGeneratedNumber: { randomGeneratedName: { key1: "value1", key2: "value2" } } }}; let configKeys = Object.keys(config.configuration); configKeys.forEach((rand)=>{ console.log(rand); var itemKeys = Object.keys(config.configuration[rand]); console.log(itemKeys); for(var i=0;i<itemKeys.length;i++){ let randName = itemKeys[i]; console.log(config.configuration[rand][randName]['key1']); console.log(config.configuration[rand][randName]['key2']); } }); 

如果我明白这个问题,我只会做这样的事情:

 let value; for (let nestedOuter of Object.values(something.configuration)) for (let nestedInner of Object.values((nestedOuter))) value = nestedInner.key1; console.log(value); 

如果您需要随机生成的值,则需要执行Object.entries来取出键和值。