2013-03-07 69 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