用JavaScript解析对象名路径
我有一个目标:用JavaScript解析对象名路径,javascript,Javascript,我有一个目标: const list = { library: { books: { count: 100 } } } 我有一个数组: const key = [ 'library', 'books', 'count' ] 我希望使用该数组从对象中获取值100 我尝试过仅使用阵列: 常数列表={ 图书馆:{ 书籍:{ 计数:100 } } } const key=['library','books','count']
const list = {
library: {
books: {
count: 100
}
}
}
我有一个数组:
const key = [ 'library', 'books', 'count' ]
我希望使用该数组从对象中获取值100
我尝试过仅使用阵列:
常数列表={
图书馆:{
书籍:{
计数:100
}
}
}
const key=['library','books','count']
console.loglist[key]我所知道的最简洁的方法是使用reduce: 常数列表={ 图书馆:{ 书籍:{ 计数:100 } } } const key=['library','books','count'] //简单一行 让val=key.reduceobj,key=>obj[key],list
console.logval我知道的最简洁的方法是使用reduce: 常数列表={ 图书馆:{ 书籍:{ 计数:100 } } } const key=['library','books','count'] //简单一行 让val=key.reduceobj,key=>obj[key],list
console.logval试试这个。较短的版本。只是为了好玩: 常数列表={ 图书馆:{ 书籍:{ 计数:100 } } } const key=['library','books','count']
控制台。日志列表[键[0]][键[1]][键[2]]试试这个。较短的版本。只是为了好玩: 常数列表={ 图书馆:{ 书籍:{ 计数:100 } } } const key=['library','books','count']
console.loglist[key[0]][key[1]][key[2]]您试图实现的就是名称路径解析。 您可以使用reduce或正则for迭代来实现它 我在这里准备了一些基准: for循环比reduce快10% 在Chrome 65.0.3325/Windows 10 0.0.0中测试 For循环 更快,也许更容易理解 //名称路径解析器 函数resolvePathtarget,namepath{ 对于let i=0;i