cro*_*lum 4 javascript arrays jquery
我喜欢inarray,搜索没有循环的数组,但它只做精确/精确匹配,如果我使用.match,我可以做部分匹配,但这需要一个循环.
有没有办法搜索数组的部分匹配,没有循环?
如果在第1个中找到部分或完全匹配,则有2个数组,1个要搜索,第2个替换文本/值.
目标是以最快的方式搜索阵列以进行部分或完全匹配.
有什么建议?
jAn*_*ndy 10
好吧,.inArray()当然,如果Array.prototype.indexOf()不可用,则在数组上循环:
片段
inArray: function( elem, array ) {
if ( array.indexOf ) {
return array.indexOf( elem );
}
for ( var i = 0, length = array.length; i < length; i++ ) {
if ( array[ i ] === elem ) {
return i;
}
}
return -1;
},
Run Code Online (Sandbox Code Playgroud)
片段
如果您只想知道数组是否包含条目,您可能只想要.join()它并使用String.prototype.indexOf().
这当然不能再返回索引了.所以你需要编写自己的逻辑.可以通过修改上面的代码轻松完成.例如:
Array.prototype.ourIndexOf = function(v) {
for ( var i = 0, length = this.length; i < length; i++ ) {
if ( typeof this[i] === 'string' && this[i].indexOf(v) > -1 ) {
return i;
}
}
return -1;
};
['Foobar', 'baseball', 'test123'].ourIndexOf('base') // === 1
Run Code Online (Sandbox Code Playgroud)