2011-07-30 104 views
2

我已經在網上搜索,但沒有任何運氣來糾正我的問題。我想要做的是搜索一個數組的子串並返回結果。該陣列的一個例子是這樣的:在Javascript中搜索數組的子串

the_array = ["PP: com.package.id, NN: Package Name","PP: com.another.id, NN: Another Name"]; 

我想要做的是com.package.id搜索the_array確保它出現在"PP:"","之間。另請注意,該數組將包含數千個值。希望你能幫助,謝謝。

+1

那你試試陣通?你所能做的就是迭代數組並檢查每個字符串。 –

+0

可能重複的[在JavaScript中,你如何搜索數組的子串匹配](http://stackoverflow.com/questions/4556099/in-javascript-how-do-you-search-an-array-for- a-substring-match) – ripper234

回答

2

簡單的方法:

the_array.join("|").indexOf([str]) >= 0;

其他方式將循環使用.each()或簡單for循環

Array.prototype.each = function(callback){ 
    for (var i = 0; i < this.length; i++){ 
     callback(this[i]); 
    } 
} 

the_array.each(function(elem){ 
    console.log(elem.indexOf('<searchString goes here>')); 
}); 
+0

'each'不是JavaScript函數。 –

+1

FWIW,ECMAScript 5引入了'forEach':https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/foreach你也可以在那裏找到一個替代實現。但在我看來,「每個」與問題無關。 –

+0

是和是。由於ES5尚未得到普遍支持,我們需要這些解決方法。 – Mrchief