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']
。我错误地标记了你的评论。我道歉。