在使用JSON时,有时候我们需要获取JSON数据中某个对象的父对象。下面将介绍获取父对象的方法。
let json = {
"person": {
"name": "Tom",
"age": 18,
"address": {
"city": "Beijing",
"street": "Changan Street",
"zipCode": "000001"
}
}
}
/**
* 获取父对象
* @param {object} obj - 当前对象
* @param {string} targetKey - 目标键名
*/
function getParent(obj, targetKey) {
let parent = null;
for (let key in obj) {
if (key === targetKey) {
return parent;
}
else if (typeof obj[key] === "object" && obj[key] !== null) {
parent = obj;
let result = getParent(obj[key], targetKey);
if (result !== null) {
return result;
}
}
}
return null;
}
// 获取address对象的父对象
let parent = getParent(json, "address");
console.log(parent); 在上面的代码中,我们定义了一个函数getParent,它接受两个参数,obj表示当前对象,targetKey表示目标键名。函数内部使用for...in循环遍历对象中的键名,如果当前键名是目标键名,则返回当前对象的父对象;如果当前键值也是一个对象,则递归执行getParent函数,直到找到目标键名或者遍历结束。最后如果没有找到目标键名,返回null。
在上面的例子中,我们使用getParent函数获取了address对象的父对象,它是person对象。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论