gpt4 book ai didi

javascript - 如何获取 JavaScript 对象节点路径

转载 作者:行者123 更新时间:2023-12-02 17:01:20 26 4
gpt4 key购买 nike

我有一个 JavaScript 对象。我怎样才能获得它的路径?

var obj = {
objData: {
Name: "",
age: "",
Department: {
DepartmentDetails: {
clerk: "xyz",
manager: "abc"
}
},
WorkingDetails: [
{
Title: "",
workType: "",
Appointee: {
BasicDetails: {
lastName: "",
middleName: "",
firstName: ""
}
}
}
]
}
}

我已经尝试过以下代码。但它没有给我正确的结果。

var x = objData.Department.DepartmentDetails.clerk;
var path = "data";
function search(path, obj, target) {
var found = false;
for (var k in obj) {
if (obj.hasOwnProperty(k))
if (obj[k] === target)
return path + "['" + k + "']"
else if (typeof obj[k] === "object") {
var result = search(path + "['" + k + "']", obj[k], target);
if (result)
return result;
}
}
return false;
}

var path = search(path, obj, x);
console.log(path);

我期望结果为

Department.DepartmentDetails.clerk:xyz

对此的任何帮助都会非常有帮助。

最佳答案

var obj = {
objData: {
Name: "",
age: "",
Department: {
DepartmentDetails: {
clerk: "xyz",
manager: "abc"
}
},
WorkingDetails: [{
Title: "",
workType: "",
Appointee: {
BasicDetails: {
lastName: "",
middleName: "",
firstName: ""
}
}
}]
}
}

function search(obj, target) {
var path = "";
for (var key in obj) {
if (obj[key] == target) {
path += key + ":" + target;
return path;
} else {
path = search(obj[key], target);
if (path) {
return key+"."+path;
}
}
}
}

alert(search(obj.objData, "xyz"))

fiddle http://jsfiddle.net/vikrant47/8fk6h48c/

关于javascript - 如何获取 JavaScript 对象节点路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25678475/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com