在javascript中搜索命名数组

在javascript中搜索命名数组,javascript,Javascript,这可能是一个重复,但我不能帮助,但张贴这个,我有一个数组与此格式 answerCollection= { 0: {selected : a, status : false }, 1: {selected : a, status : false } } 我想像这样做一个索引检查 if(answerCollection.indexOf(indexNo) == -1){ sel = "a"; } 但它总是失败,即我总是得到-1的返回值,不管数组中是否存在索引 如何进行这

这可能是一个重复,但我不能帮助,但张贴这个,我有一个数组与此格式

answerCollection= {
0:
{selected : a,
 status :  false   
 },
1:
{selected : a,
 status :  false   
 }
}
我想像这样做一个索引检查

if(answerCollection.indexOf(indexNo) == -1){
 sel = "a";
 }
但它总是失败,即我总是得到-1的返回值,不管数组中是否存在索引

如何进行这种搜索

if(answerCollection[indexNo] == null){
 sel = "a";
}
比如看

在一个对象中使用的最佳实践。 在您的情况下,可能需要转换为字符串

if(indexNo.toString() in answerCollection){
     sel = "a";
     }

这是一个对象,不是数组。似乎
answerCollection
是一个普通对象而不是数组。另外,
indexOf
的参数是值而不是键。如果(!answerCollection[indexNo]){…}执行
会发生什么?我像disvar answerCollection=[]一样声明它@劳埃德:我把它交给了一个var检查,我一直得到-1it@Lloyd
null
强制为
未定义
<代码>未定义的
可以隐藏,
null
不能隐藏
null
的输入和文件大小更短。@fabriciomatté是的,我忘了:)哦,没问题。由于我们在挑剔,我会选择
如果(!answerCollection[indexNo])
=]
:)我更喜欢我的null,因为我定义了集合。可能是对的,但请解释它的功能(或链接到文档)以避免混淆!
if(indexNo.toString() in answerCollection){
     sel = "a";
     }