Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将属性链作为括号符号变量传递_Javascript - Fatal编程技术网

Javascript 将属性链作为括号符号变量传递

Javascript 将属性链作为括号符号变量传递,javascript,Javascript,我有一个函数,我想传递一个包含对象属性路径的变量。此路径将根据调用函数的位置而改变。我不知道如何将路径保存在变量中 我需要保存数据。a.b.c在“x”中。 我需要将访问“c”的路径存储在“y”中,我假设使用括号表示法 作用 y = [a.b.c] calculate(data, y) calculate = function(data, y) { x = data[y] } 你不能做你想做的事。一系列的“括号表示法”片段是纯语法的。但您可以通过将匿名函数传递给countInDee

我有一个函数,我想传递一个包含对象属性路径的变量。此路径将根据调用函数的位置而改变。我不知道如何将路径保存在变量中

我需要保存数据。a.b.c在“x”中。 我需要将访问“c”的路径存储在“y”中,我假设使用括号表示法

作用

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 */