我有一个函数,我想传递一个包含对象属性路径的变量。此路径将根据调用函数的位置而更改。我无法弄清楚如何在变量中保存路径。
我需要在'x'中保存data.a.b.c. 我需要存储在'y'中访问'c'的路径(我假设使用括号表示法)
功能
y = [a.b.c]
calculate(data, y)
calculate = function(data, y) {
x = data[y]
}
答案 0 :(得分:0)
你无法做你想做的事。一系列的括号表示法'切片是纯语法。但是你可以通过传递给countInDeep
的匿名函数来传递路径的函数:
var deep = {}
deep.a = {}
deep.a.b = {}
deep.a.b.c = {}
deep.a.b.c.count = 42
function countInDeep(func) {
return func(deep).count
}
console.log(countInDeep(function(x) { return x.a.b.c }))
/* outputs: 42 */