Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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/3/arrays/14.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_Arrays_Associative Array - Fatal编程技术网

如何在Javascript中创建以数字为字符串的关联数组

如何在Javascript中创建以数字为字符串的关联数组,javascript,arrays,associative-array,Javascript,Arrays,Associative Array,我有一个密码: var index = 100; var arr =[]; arr[index.toString()] = "Hello" 结果:索引仍然被称为整数而不是字符串。任何人都可以解释我的代码出了什么问题?您必须使用{}声明关联数组,这将创建一个新的对象,因为在JavaScript中,数组总是使用编号索引 您需要声明一个对象:var arr={} 数组使用编号索引 对象使用命名索引 var指数=100; var arr={}; arr[index.toString()]=“

我有一个密码:

var index = 100;

var arr =[];

arr[index.toString()] = "Hello"

结果:索引仍然被称为整数而不是字符串。任何人都可以解释我的代码出了什么问题?

您必须使用
{}
声明关联数组,这将创建一个新的
对象,因为在JavaScript中,数组总是使用编号索引

您需要声明一个对象:
var arr={}

  • 数组使用编号索引
  • 对象使用命名索引
var指数=100;
var arr={};
arr[index.toString()]=“你好”;

控制台日志(arr)
您必须使用
{}
声明关联数组,这将创建一个新的
对象,因为在JavaScript中,数组总是使用编号索引

您需要声明一个对象:
var arr={}

  • 数组使用编号索引
  • 对象使用命名索引
var指数=100;
var arr={};
arr[index.toString()]=“你好”;
控制台日志(arr)对于ES6,您可以使用,它将任何类型作为键保存

var映射=新映射;
地图集(100,“你好”);
地图集('100','Foo');
console.log(map.get(100));/'你好’
console.log(map.get('100'));/'富
log([…map])对于ES6,您可以使用,它将任何类型作为键保存

var映射=新映射;
地图集(100,“你好”);
地图集('100','Foo');
console.log(map.get(100));/'你好’
console.log(map.get('100'));/'富
log([…map])
如何在Javascript中创建以数字为字符串的关联数组


JavaScript没有经常使用的关联数组。它有对象,从ES2015(也称为“ES6”)开始,它有
Map
s

结果:索引仍然被称为整数而不是字符串。有人能解释我的代码有什么问题吗

索引
变量的值仍然是一个数字,是的,因为您没有做任何更改。但是数组中的索引是一个字符串(即使没有使用
.toString()
),因为标准数组1,它们是对一类属性(其名称是符合规范数组索引定义的字符串)进行特殊处理的对象,一个特殊的
长度
属性,使用
Array.prototype
作为原型

下面是数组索引是字符串的证明:

var a=[];
a[0]=“零”;
for(a中的变量名称){
log(“name==”+name+”,typeof name==“+typeof name”);
}
如何在Javascript中创建以数字为字符串的关联数组


JavaScript没有经常使用的关联数组。它有对象,从ES2015(也称为“ES6”)开始,它有
Map
s

结果:索引仍然被称为整数而不是字符串。有人能解释我的代码有什么问题吗

索引
变量的值仍然是一个数字,是的,因为您没有做任何更改。但是数组中的索引是一个字符串(即使没有使用
.toString()
),因为标准数组1,它们是对一类属性(其名称是符合规范数组索引定义的字符串)进行特殊处理的对象,一个特殊的
长度
属性,使用
Array.prototype
作为原型

下面是数组索引是字符串的证明:

var a=[];
a[0]=“零”;
for(a中的变量名称){
log(“name==”+name+”,typeof name==“+typeof name”);

}
JavaScript不支持具有命名索引的数组,在JavaScript中,数组始终使用编号索引

如果使用命名索引,JavaScript会将数组重新定义为标准对象。 之后,所有数组方法和属性都将产生不正确的结果

如以下示例所示:

var person=[];
个人[“名字”]=“约翰”;
个人[“姓氏”]=“能源部”;
人[“年龄”]=46;
变量x=人的长度;//person.length将返回0
控制台日志(x);
变量y=人[0];//人员[0]将返回未定义的

控制台日志(y)JavaScript不支持具有命名索引的数组,在JavaScript中,数组始终使用编号索引

如果使用命名索引,JavaScript会将数组重新定义为标准对象。 之后,所有数组方法和属性都将产生不正确的结果

如以下示例所示:

var person=[];
个人[“名字”]=“约翰”;
个人[“姓氏”]=“能源部”;
人[“年龄”]=46;
变量x=人的长度;//person.length将返回0
控制台日志(x);
变量y=人[0];//人员[0]将返回未定义的

控制台日志(y)数组索引是整数,请使用对象
var arr={}
@PranavCBalan:实际上,数组的键是字符串,就像任何其他对象一样。JavaScript没有“关联数组”。但更重要的是,你想解决的实际问题是什么?将编码问题简化为最简单的例子是很好的,但也许我们在这里做得太过分了。你想解决什么现实问题?代码的输入和所需的输出是什么?数组索引是整数,使用对象
var arr={}
@PranavCBalan:实际上,数组的键是字符串,就像任何其他对象一样。JavaScript没有“关联数组”。但更重要的是,你想解决的实际问题是什么?将编码问题简化为最简单的例子是很好的,但也许我们在这里做得太过分了。你想解决什么现实问题?代码的输入和期望的输出是什么?不。数组是obje