共计 484 个字符,预计需要花费 2 分钟才能阅读完成。
输出 对象 以及 属性名 ,取得 属性值
eg: 输出:data
, 'a/b/c'
const data = {
a: {
b: {
c:1,
d:2
}
}
}
输入:1
办法 1:while
遍历
function findObjectValue(object, attribute) {let arr = attribute.split('/')
let i = 0
while (arr[i]) {object = object[arr[i]]
i++
}
return object
}
const data = {
a: {
b: {
c:1,
d:2
}
}
}
console.log(findObjectValue(data, 'a/b/c'))
办法 2:eval
拼贴字符串
拼出来就是这样的,temp['a']['b']['c']
const findObjectValue = (data, attr) => {
let temp = data;
return eval(`temp['${attr.split('/').join(`']['`)}']`);
}
const data = {
a: {
b: {
c:1,
d:2
}
}
}
console.log(findObjectValue(data, 'a/b/c'))
正文完