输出对象以及属性名,取得属性值
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'))
发表回复