// 获取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 );
类似问题:根据对象的路径修改对象下的属性