Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.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,可能重复: 我试图读取一个键是数字的对象。但不幸的是,当我尝试阅读此对象时: Salary:{ "2012_08":"5555", "2012_09":"6666", "2012_10":"7777" } var augsalary = salary.2012_08; 它抛出了一个错误。我的问题是:2012_08是年-月组合,不能更改为存储为字符串。如何使用该键访问该值?可以使用大括号表示法访问所有对象属性 使用 请注意,如果您希望将其作为整数,并且无法更改JSON以发送数字,

可能重复:

我试图读取一个键是数字的对象。但不幸的是,当我尝试阅读此对象时:

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

它抛出了一个错误。我的问题是:2012_08是年-月组合,不能更改为存储为字符串。如何使用该键访问该值?

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

使用

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

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

首先,您的Javascript代码无效,可能是您的意思

var Salary = {
  "2012_08":"5555",
  "2012_09":"6666",
  "2012_10":"7777"
}
var augsalary =  salary.2012_08;
其次,一个非常常见的混淆是谈论JSON对象。Salary不是JSON对象,而是JavaScript对象。JSON是 将所有JavaScript对象的一大个子集表示为字符串。然后,可以使用这些字符串 可以传输到代码的其他部分或其他计算机,在这些计算机上可以将它们转换回对象进行处理。所以在您的问题中,工资将是从接收到的JSON字符串转换而来的数据

JS有数组和对象

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

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

因此,在您的示例中,您没有数字键或属性名,因为它们包含一个“\u1”字符。因为它们以数字开头,所以不能使用点符号,必须使用大括号符号才能访问它们,如下所述


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

2012\u 08是年-月组合,不能更改为字符串形式存储。-它已经是一个字符串:数字中不能有下划线,并且值用双引号括起来。它不是用于对象属性点表示法的有效标识符。顺便说一句,您的问题与JSON无关,我相应地编辑了您的问题。
var Salary = {
  "2012_08":"5555",
  "2012_09":"6666",
  "2012_10":"7777"
}
var augsalary =  salary.2012_08;