2013-03-07 43 views
1

假设我有匹配多个阵列值,值为正确的顺序

// the idea of the array below are ['from', 'to'] 
var runA = [2,6] 
var runB = [4,1] 

var input = [1,4,2,6,2] 

如何匹配店runA,使2,6是正确的顺序?它应该返回true。

但是对于runB,它应该返回false,即使它包含值1和4,但不匹配正确的'from','to'顺序。

+1

难道功课对我们来说,或者你已尝试自己的一些代码? – 2013-03-07 12:28:51

+0

没想到正则表达式,我把数组转换为字符串,尝试按字符传递它,如果没有连续的'真',比断开循环,然后重新启动,否则回调... yup它的一个混乱 – devric 2013-03-08 15:15:39

回答

4

这是一种可能的方式:

if (new RegExp("\\b" + runA + "\\b").test(input)) { 
    // 'runA' exists in 'input' 
} 
+1

+1非常优雅的队友! – gdoron 2013-03-07 12:30:41

+0

@gdoron它更加优雅,没有'join()' – VisioN 2013-03-07 12:37:18

+0

是的,这是默认情况下,当你toString'一个数组(暗示这里) – gdoron 2013-03-07 13:06:46