2011-11-03 65 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

相关问题