如何用整数作为键读取对象?

时间:2012-10-11 06:41:56

标签: javascript

  

可能重复:
  How to access a numeric property?

我正在尝试读取键是数字的对象。但不幸的是,当我尝试阅读这个对象时:

Salary:{
  "2012_08":"5555",
  "2012_09":"6666",
  "2012_10":"7777"
}
var augsalary =  salary.2012_08;

它会抛出错误。我的问题是:“2012_08”是年月组合,不能更改为存储为字符串。我怎样才能使用该密钥访问该值?

2 个答案:

答案 0 :(得分:6)

可以使用括号表示法访问所有对象属性。

使用

var augsalary =  salary['2012_08'];

请注意,如果您想将其作为整数(并且无法更改JSON以发送数字),您可以使用:

var augsalary =  parseInt(salary['2012_08'], 10);

答案 1 :(得分:3)

首先,您的Javascript代码无效,也许您的意思是

var Salary = {
  "2012_08":"5555",
  "2012_09":"6666",
  "2012_10":"7777"
}
var augsalary =  salary.2012_08;

其次,一个常见的混淆是谈论JSON对象。 Salary不是JSON对象,而是JavaScript对象。 JSON是一种表示法 将所有JavaScript对象的大部分表示为字符串。然后这些字符串可以 被传输到您的代码或其他计算机的其他部分,在那里它们可以转换回对象进行处理。因此,问题Salary将是从收到的JSON字符串转换的数据。

JS有数组和对象。

对象是最基本的,它们可以具有名称可以是任意字符串的属性。提供了两种形式的对象属性访问:大括号和点符号。括号表示法是通用的,您可以在对象名称后面的大括号内指定属性名称值作为字符串或变量值。点表示法是一种简写,只有在属性名称具有有效JS变量名称的形式时才能使用。

数组是基本对象,具有维护其数字属性名称的有序列表的附加功能。您可以向数组添加非数字属性名称,但它们不参与任何数组函数。

因此,在您的示例中,您没有数字键或属性名称,因为它们包含“_”字符。由于它们以数字开头,因此您无法使用点表示法,并且必须使用括号表示法来访问它们,如下面dystroy所述。

希望我的小课可以帮助您更好地理解基础知识。