2016-11-23 31 views
0

我想知道如何做一些事情,很多人可能會發現簡單的,但我掙扎了一下弄清楚。如何定位的一對值,每當他們來一個接一個地在陣列中之後?

例子:

var colours = [red, brown, yellow, black, white, brown, yellow, green, blue, brown, yellow]; 

每當brown是之前yellow做一些事情。或當yellow來後,立即brown做一些事情。

+1

做一個for循環,並以'顏色[I]'和'顏色[I - 1]' – nicovank

+0

謝謝。像循環,然後,如果'顏色[I] === '黃色' &&顏色[I-1] === brown''做一些事情。非常感謝你! – viery365

+1

太棒了!在這種情況下,它將檢查黃色是否呈褐色。不要忘了,在開始'I = 1'的循環,這樣你就不會得到一個例外,因爲索引越界。 – nicovank

回答

1

你可以在需要的陣列,一對物品找到的,和一個回調函數每對在數組中發現的時間來執行的函數這個包起來。

var colors = ['red', 'brown', 'yellow', 'black', 'white', 'brown', 'yellow', 'green', 'blue', 'brown', 'yellow']; 
 

 
handlePair(colors, ['brown', 'yellow'],() => { 
 
    console.log('yellow follows brown'); 
 
}); 
 

 
handlePair(colors, ['green', 'blue'],() => { 
 
    console.log('blue follows green'); 
 
}); 
 

 
function handlePair(array, pair, callback) { 
 
    for (var i = 1; i <= array.length; i++) { 
 
    if (array[i] === pair[1] && array[i - 1] === pair[0]) { 
 
     callback(); 
 
    } 
 
    } 
 
}

相關問題