Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.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 Js char数组将字符串整数视为整数_Javascript_Node.js - Fatal编程技术网

Javascript Js char数组将字符串整数视为整数

Javascript Js char数组将字符串整数视为整数,javascript,node.js,Javascript,Node.js,我有一个字符数组: a = [ 'm', 'a', 'q', '0', '2', 'o' ] 当我尝试为任何元素扩展数组时: a[a['0']] = something; 它将“0”视为索引0 为什么会发生这种情况 ---编辑--- 我想做的是说a[a[3]]=某物,这样当我计算a['0']时,它会返回'something' 它将“0”视为索引0 因为这就是[]符号的含义:使用该键查找或分配对象中的属性。JavaScript中的普通数组,它们只是具有某些特殊行为的对象;语法不是特定于数组的,

我有一个字符数组:

a = [ 'm', 'a', 'q', '0', '2', 'o' ]
当我尝试为任何元素扩展数组时:

a[a['0']] = something;
它将“0”视为索引0

为什么会发生这种情况

---编辑---

我想做的是说a[a[3]]=某物,这样当我计算a['0']时,它会返回'something'

它将“0”视为索引0

因为这就是
[]
符号的含义:使用该键查找或分配对象中的属性。JavaScript中的普通数组,它们只是具有某些特殊行为的对象;语法不是特定于数组的,而是对象范围的

如何克服这一点

在您的编辑中:

我想做的是说
a[a[3]]=something
,这样当我计算
a['0']
时,它会返回'something'

这将有助于:

a[a[3]] = 'something';
console.log(a['0']); // something
var a=['m','a','q','0','2','o']
var something=“foo”;
a[a[3]='something';
snippet.log(a['0']);//一些东西

我同意其他人的看法。javascript中的数组的行为与标准数组不同。然而,如果我根据您的代码示例猜测您可能正在尝试更新和数组中的对象。如果是这种情况,则可以执行以下操作:

a[a.indexOf('0')] = something;

数组应该通过索引进行访问。你不是在混淆数组和对象吗?
[]
创建了一个索引为整数的数组。如果传入一个字符串作为索引,javascript将尝试将该字符串解析为整数<代码>'0'只会变成
0
。我想你可能在想一个对象,它会以不同的方式对待
a[0]
a['0']
。我错误地标记了你的评论。我道歉。