2010-01-23 62 views

回答

1

你可以使用some(),已添加對ECMAScript 5一個Mozilla擴展:

var haystack = 'I like eggs!'; 
if(['spam', 'eggs'].some(function(needle) { 
    return haystack.indexOf(needle) >= 0; 
})) alert('spam or eggs'); 
2

您可以使用grep功能查找是否有滿足條件的所有元素:

// get all elements that satisfy the condition 
var elements = $.grep(someArray, function(el, index) { 
    // This assumes that you have an array of strings 
    // Test if someString contains the current element of the array 
    return someString.indexOf(el) > -1; 
}); 

if (elements.length > 0) { 
    callSomeFunction(); 
} 
1

只需遍歷數組中的項目,尋找價值。即使你使用某種方法爲你做這些,你也必須這樣做。通過循環自己,只要你找到一場比賽,你就可以輕鬆地跳出循環,這將平均減少你需要檢查的項目的數量。

for (var i=0; i<theArray.length; i++) { 
    if (theArray[i] == theString) { 
    theFunction(); 
    break; 
    } 
} 
+0

不要使用'for..in'來遍歷數組! – Christoph 2010-01-23 11:36:57

+0

@Christoph:感謝您的高舉。我通常不會使用for..in,並且它在教程中使用時沒有任何可能的風險。 – Guffa 2010-01-23 12:08:27

+0

周圍有很多糟糕的JS代碼;這就是流行語言的問題:每個人都聲稱「知道」他們,並且傾向於傳播他們的知識;即使是來自'官方'來源的信息,你認爲這些人應該知道他們在談論的內容有時只是錯誤的(*咳嗽* Apple JavaScript Coding Guidelines) – Christoph 2010-01-23 12:32:46

相關問題