2011-11-03 80 views
0

搜索單個字符的數組的最佳方法是什麼,如果找到則返回true,如果不使用JS則返回false?當在數組中搜索單個字符時返回true或false

例如:

search["adipisci","adipiscix"] 

回報虛假的數組元素1真正的數組元素2「sciipx」搜索

非常感謝!

+0

因此,只有當搜索詞中的所有字符都位於數組元素中時,它纔會返回true。 –

+0

是的,只有當搜索詞中的所有字符都位於數組元素 – methuselah

回答

1

以下應該做的伎倆:

var search = "sciipx".split(''); 
var elems = ["adipisci","adipiscix"]; 
var matches = []; 

for (var i = 0; i < elems.length; i++) { 
    var found = true; 
    for (var j = 0; j < search.length; j++) { 
     if (elems[i].indexOf(search[j]) < 0) { 
      found = false; 
      break; 
     } 
    } 
    if (found) { 
     matches.push(i); // you can do elems[i] if you prefer 
    } 
} 

最終比賽將與該匹配的字符串的索引的陣列。 這裏是小提琴:http://jsfiddle.net/W3Xvy/

NB:如果你需要它,循環可以進一步優化。

+0

感謝您的答案@draevor。可以通過這種方式提醒比賽:'如果(找到){matches} [i]; //如果你喜歡 alert(matches),你可以做elems [i]; }' – methuselah

+0

我真的不明白你的問題... – deviousdodo

+0

對不起,我打算寫我該怎麼做才能得到匹配的輸出......它只是'alert(matches)'? – methuselah

相關問題