Javascript 原因是什么;在;无法知道数组中是否存在字符串?

Javascript 原因是什么;在;无法知道数组中是否存在字符串?,javascript,Javascript,按预期返回true 1 in [1, 2, 3, 'a', 4] 返回false,但我希望true 为什么会这样?必须是因为字符串是对象?中的告诉您是否存在该名称的属性,而不是任何属性是否有与其匹配的值 您的阵列看起来像: 'a' in [1, 2, 3, 'a', 4] 左手边没有“a” 使用 ar中的1检查是否存在ar[1],而不是检查其中一个数组元素是否为1 ar中的'a'对ar['a']请发布一个完整的代码示例。索引是否应该是整数,因为indexOf返回数字?@Tushar-属性名称

按预期返回
true

1 in [1, 2, 3, 'a', 4]
返回
false
,但我希望
true


为什么会这样?必须是因为字符串是对象?中的
告诉您是否存在该名称的属性,而不是任何属性是否有与其匹配的值

您的阵列看起来像:

'a' in [1, 2, 3, 'a', 4]
左手边没有“a”

使用

ar中的
1
检查是否存在
ar[1]
,而不是检查其中一个数组元素是否为
1


ar中的
'a'对
ar['a']

请发布一个完整的代码示例。索引是否应该是整数,因为
indexOf
返回数字?@Tushar-属性名称始终是字符串。当用作属性名时,可以键入数字(JS中没有整数类型)的位置将转换为字符串。
{ 
    "0": 1, 
    "1": 2,
    "2": 4,
    "3": "a",
    "4": 4,
    // and various features from Array
}
var ar = [1, 2, 3, 'a', 4];