javascript - Get next property of nested object in javascript
问题描述
I have been trying to write a function that would return an another in line property key.
Lets say we have this JSON:
'Test123': {
'Another Test': {},
'Test some more': {
'Still testing?': {
'Yeah...': {}
},
'Never ending story': {}
}
},
For example, if we pass 'Still testing?' key into the function it should return 'Yeah...', but if we pass 'Yeah...' it should return 'Never ending story'. Doest someone knows who to do it? I have been trying to write a function doing that but my brain doesn't support it...
解决方案
let obj = {
'Test123': {
'Another Test': {},
'Test some more': {
'Still testing?': {
'Yeah...': {}
},
'Never ending story': {}
}
}
}
function nextKey(keyStr, object) {
if (!keyStr || !object || typeof object != 'object' || object.constructor.name != 'Object') {
console.log("Improper Parameter !!!")
return
}
let found = false
let answer = {}
findKey(object)
return (Object.keys(answer).length) ? answer : "";
function findKey(obj) {
for (let key of Object.keys(obj)) {
if(Object.keys(answer).length) return;
let value = obj[key]
if(key == keyStr)found = true;
else if(found) {answer.key = key; answer.value = value; return}
if (Object.keys(value).length) findKey(value)
}
}
}
console.log(nextKey('Still testing?', obj)) //{ key: 'Yeah...', value: {} }
console.log(nextKey('Yeah...', obj)) //{ key: 'Never ending story', value: {} }
推荐阅读
- json - 如何将json变量插入httpClient获取离子5中的url参数
- python-2.7 - 从集合中获取集合对象,maya 2018
- python - Python中的正确多处理
- css - 使用过滤器定位固定更改
- android - 尝试连接到 React Native 打包器的 Android Staging 构建风格
- svelte - 如何将 dat.gui 库导入 Sapper/Svelte 项目?
- python-3.x - Jupyterhub - 无法更改开始目录
- python - 如何在python中访问csvfile的特定单元格
- python - 向 wtforms.widgets html5 NumberInput 添加最小值和最大值
- android - Naming convention for Web Apps added via the Add to Home Screen on iOS or Android?