2011-07-30 47 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