我有一个如下所示的Array对象:
var wordList = new Array();
$.get('words.txt', function(data){
wordList = data.split('\n');
});
当我这样做时:
return jQuery.inArray(word, wordList)!==-1;
使用我知道//在数组中的单词,它仍然会返回false。可能是数组太大(它包含173,139个字符串) - 这是吗?在这种情况下,我应该放弃使用数组,还是有不同的方法来搜索数组?
我检查了单词的类型和数组中的元素 - 两者都是根据JavaScript typeof
的字符串。
奇怪的是,我在阵列中使用了相同的单词和不同的数组,并且它运行得很好 - 区别在于阵列的生成方式(一个是通过相同的输入我得到word
,一个是.txt文件中的分割线。)
此外,当我尝试通过其索引显式调用元素时,它会显示出来,所以我确定数组正在加载。我也使用高索引号;调用wordList [173138]并没有以任何方式使响应时间变慢。
为什么inArray()不在这里工作?
答案 0 :(得分:0)
我最初把它放在评论中,但被告知要回答 - 这应该更容易找到。对于无法循环播放此类数组的任何人,请检查您按照换行符拆分数组的方式 - 我的数组导致了一些问题,因为我使用了data.split('\n')
我应该在哪里&# 39;一直在使用data.split('\r\n')
。修好后,一切都很好。