Example:
var someObject = {
'part1' : {
'name': 'Part 1',
'txt': 'example',
},
'part2' : {
'name': 'Part 2',
'size': '15',
'qty' : '60'
},
'part3' : [
{
'name': 'Part 3A',
'size': '10',
'qty' : '20'
}, {
'name': '[value]',
'size': '5',
'qty' : '20'
}, {
'name': 'Part 3C',
'size': '7.5',
'qty' : '20'
}
]};
我需要一个函数来获取对象到值的路径"[value]"
可以是物体上的任何地方
该对象将由用户传递,因此我不知道它的结构。
就像是:
getPath(obj, '[value]');
下面是一些代码,应该可以为您提供指向对象的路径,但不确定它有多安全:
function getPath(obj, val, path) {
path = path || "";
var fullpath = "";
for (var b in obj) {
if (obj[b] === val) {
return (path + "/" + b);
}
else if (typeof obj[b] === "object") {
fullpath = getPath(obj[b], val, path + "/" + b) || fullpath;
}
}
return fullpath;
}
Where testObj
是您示例中的对象:
console.log(getPath(testObj, '20')); // Prints: /part3/2/qty
console.log(getPath(testObj, "[value]")); // Prints: /part3/1/name
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)