能够创建一个以字符串作为键的映射,但是当引用该键时,它会出现“意外的数字错误”

时间:2015-10-28 03:01:48

标签: javascript dictionary

请查看下面的代码段:

var arr = [{"id":"123", "name":"Jyotirmoy"}];
var mapObj = {};
for(var  i=0; i < arr.length; i++){mapObj[arr[i].id] = arr[i];}

现在已经创建了地图,但是当我尝试使用以下键来引用它时:

mapObj.123它给我一个“意外号码”错误?但是,如果我尝试使用mapObj [123]或mapObj [“123”],它会向我显示正确的对象。我需要做什么来使用'。'来引用它。符号

3 个答案:

答案 0 :(得分:1)

  

我需要做什么来使用&#39;来推荐相同的内容。&#39;符号

在这种情况下,你不能。

使用dot notation时,该媒体资源的名称必须是有效的identifier

  

在JavaScript中,标识符只能包含字母数字字符(或&#34; $&#34;或&#34; _&#34;),可能不以数字开头。 < / p>

因此,要访问数字密钥,例如print(),您必须使用bracket notation

123

如果您决定使用点表示法,则为键添加字母前缀将允许其使用:

myObj[123]

答案 1 :(得分:1)

Javascript属性,当通过点表示法(a.x)访问时,不能以数字开头。

如果对象是

{ one1: foo }

然后

mapObj.one1

会奏效。由于id数字,因此您需要使用括号表示法(a[x]):

mapObj[1]

mapObj["1"]

答案 2 :(得分:-1)

更改

var arr = [{"id":"123", "name":"Jyotirmoy"}];

var arr = {"id":"123", "name":"Jyotirmoy"};