Javascript 将属性链作为括号符号变量传递
我有一个函数,我想传递一个包含对象属性路径的变量。此路径将根据调用函数的位置而改变。我不知道如何将路径保存在变量中 我需要保存数据。a.b.c在“x”中。 我需要将访问“c”的路径存储在“y”中,我假设使用括号表示法 作用Javascript 将属性链作为括号符号变量传递,javascript,Javascript,我有一个函数,我想传递一个包含对象属性路径的变量。此路径将根据调用函数的位置而改变。我不知道如何将路径保存在变量中 我需要保存数据。a.b.c在“x”中。 我需要将访问“c”的路径存储在“y”中,我假设使用括号表示法 作用 y = [a.b.c] calculate(data, y) calculate = function(data, y) { x = data[y] } 你不能做你想做的事。一系列的“括号表示法”片段是纯语法的。但您可以通过将匿名函数传递给countInDee
y = [a.b.c]
calculate(data, y)
calculate = function(data, y) {
x = data[y]
}
你不能做你想做的事。一系列的“括号表示法”片段是纯语法的。但您可以通过将匿名函数传递给countInDeep来传递路径函数,如下所示: 我想你把a.b.c作为一个字符串?比如y='a.b.c'?如果是这样,请参见以下内容:函数resolvepath,base{return path.reducefunctiono,k,u,u{var v=o&&o[k];return v;},base | | Window;}x=resolvepath.split.,data;
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 */