// 获取value的方法 obj为要获取的对象,path是路径 用.链接
var getPropByPath = function (obj, path) {
let tempObj = obj
path = path.replace(/\[(\w+)\]/g, '.$1')
path = path.replace(/^\./, '')
let keyArr = path.split('.')
let i = 0
for (let len = keyArr.length; i < len - 1; ++i) {
let key = keyArr[i]
if (key in tempObj) {
tempObj = tempObj[key]
} else {
console.error('没有查到相关值!!!!')
}
}
return {
obj: tempObj,
key: keyArr[i],
val: tempObj[keyArr[i]]
}
}
// 调用示例
var obj = {name:'objname', items:[{value: 0},{value: 1}]}, path = 'items.0.value'; console.log( getPropByPath(obj, path).v );
类似问题:根据对象的路径修改对象下的属性

本文详细解析了一种用于JavaScript中复杂对象属性访问的方法,通过示例代码展示了如何使用自定义函数getPropByPath来获取对象深层路径的值,这对于理解和操作复杂的JSON数据结构尤其有用。
1696

被折叠的 条评论
为什么被折叠?



