在Javascript中将对象作为参数传递-但不仅仅是一个参数,而是一个由变量构建的参数

在Javascript中将对象作为参数传递-但不仅仅是一个参数,而是一个由变量构建的参数,javascript,arrays,function,Javascript,Arrays,Function,我正在将一个对象传递给一个函数。简化示例如下: countyInfo(sales.NY2008); 目标是: {countyName:"Albany",percentage:0.864789889,percentageComparison:40.18903649,sales:1222}, {countyName:"Allegany",percentage:0.789529462,percentageComparison:27.98874729,sales:1

我正在将一个对象传递给一个函数。简化示例如下:

countyInfo(sales.NY2008);  
目标是:

        {countyName:"Albany",percentage:0.864789889,percentageComparison:40.18903649,sales:1222},
        {countyName:"Allegany",percentage:0.789529462,percentageComparison:27.98874729,sales:149},
        {countyName:"Broome",percentage:1.009475302,percentageComparison:63.64364553,sales:880},
        {countyName:"Cattaraugus",percentage:0.874885092,percentageComparison:41.82554597,sales:276},
        {countyName:"Cayuga",percentage:0.801267677,percentageComparison:29.89160156,sales:268},
        {countyName:"Chautauqua",percentage:0.830185925,percentageComparison:34.5794701,sales:455},
        {countyName:"Chemung",percentage:0.744919757,percentageComparison:20.75717391,sales:272},
        {countyName:"Chenango",percentage:1.191003494,percentageComparison:93.07074993,sales:242},
        {countyName:"Clinton",percentage:0.767315265,percentageComparison:24.38765663,sales:265},
        {countyName:"Columbia",percentage:0.83461736,percentageComparison:35.29783949,sales:260},
        {countyName:"Cortland",percentage:1.144086442,percentageComparison:85.46513794,sales:234},
它工作得很好

现在我想用变量组合这个参数

var getLocation = "NY";
var getYear     = "2008";
var getParameter= getLocation + getYear;
countyInfo(sales.getParameter)

它不起作用,因为我正在传递字符串。但是如何做到这一点呢?

因为销售似乎是一个对象,所以您可以使用索引符号来访问成员

也就是说,
sales.NY2008
相当于
sales[“NY2008”]

所以,就这么做吧

countyInfo(sales[getLocation + getYear]);

由于
sales
似乎是一个对象,因此可以使用索引符号访问成员

也就是说,
sales.NY2008
相当于
sales[“NY2008”]

所以,就这么做吧

countyInfo(sales[getLocation + getYear]);

只需将代码更改为使用括号表示法来访问对象属性,而不是点表示法

var getLocation = "NY";
var getYear     = "2008";
var getParameter= getLocation + getYear;
countyInfo(sales[getParameter]);
点符号:

  • 属性标识只能是字母数字(和u和$)
  • PropertyIdentifier不能以数字开头
  • 属性标识符不能包含变量
  • 嗯 — 对象属性1,对象属性$
  • 不好 — obj.1prop,obj.prop名称
括号符号:

  • 属性标识符必须是 引用字符串
  • 可以使用变量、空格和字符串 从数字开始
  • 嗯 — obj[“1prop”]、obj[“道具名称”]
有关详细说明,请参阅以下内容--


只需将代码更改为使用括号符号来访问对象属性,而不是点符号

var getLocation = "NY";
var getYear     = "2008";
var getParameter= getLocation + getYear;
countyInfo(sales[getParameter]);
点符号:

  • 属性标识只能是字母数字(和u和$)
  • PropertyIdentifier不能以数字开头
  • 属性标识符不能包含变量
  • 嗯 — 对象属性1,对象属性$
  • 不好 — obj.1prop,obj.prop名称
括号符号:

  • 属性标识符必须是 引用字符串
  • 可以使用变量、空格和字符串 从数字开始
  • 嗯 — obj[“1prop”]、obj[“道具名称”]
有关详细说明,请参阅以下内容--


whoops-是一个对象whoops-是一个对象您可以显示--sales的示例数据吗您可以显示--sales的示例数据吗