精易论坛

标题: JS转易 [打印本页]

作者: Pancoes    时间: 2024-6-26 12:22
标题: JS转易
  
function traverseObject (obj, path = ' ') {  
for (let key in obj) {  
if (typeof obj[key] === ' object' && obj[key] !== null) {  
// 如果当前值是一个对象且不为null,则递归遍历  
traverseObject (obj[key], `${path}${path ? ' /' : ''}${key}`);  
} else {  
// 如果当前值不是对象,则它是一个叶子节点  
console.log (`键${path ? path + ' /' + key : key} 和值 ${obj[key]}`);  
}  
}  
}  


作者: 小明无敌    时间: 2024-6-26 12:29
你想做什么 这就是 for in obj 取出 易语言的话 跟json没有绑定这么深 如果你只想遍历出来所有的话

类似于这样
作者: Pancoes    时间: 2024-6-26 20:57
小明无敌 发表于 2024-6-26 12:29
你想做什么 这就是 for in obj 取出 易语言的话 跟json没有绑定这么深 如果你只想遍历出来所有的 ...

我想遍历出最末级的键值:
比如JS执行后:
// 示例JSON  
let jsonData = {  
    "dto": {  
        "Warehouse": {  
            "Code": "01"  
        },  
        "SaleOrderDetails": [  
            {  
                "Warehouse": {  
                    "Code": "01"  
                }  
            }  
        ],  
        "Memo": "Memo"  
    }  
};  
  
// 遍历JSON数据  
traverseObject(jsonData);


结果是:
作者: Pancoes    时间: 2024-6-26 20:58
键dto/Warehouse/Code 和值 01
VM26:8 键dto/SaleOrderDetails/0/Warehouse/Code 和值 01
VM26:8 键dto/Memo 和值 Memo




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4