inArray&in string

我需要检查字符串是否在数组中作为数组中任何项的字符串的一部分。 让我们说数组中的一个项目是“Hello World”,字符串是“ello”,我需要返回true。

是的,你可以做到这一切。 要么-

if(String(array).indexOf('ello')!=-1){ ello is in the array } 

如果您有一个现代浏览器或想要polyfill Array.prototype.some() (或者使用像Underscore这样的库)。

 var contains = ['A', 'Hello World'].some(function(member) { return ~member.indexOf('ello'); }); 

jsFiddle 。

你标记了这个jQuery,所以你也可以使用它(可以在你可能关心的所有浏览器中使用)…

 var contains = !!$.grep(['A', 'Hello World'], function(member) { return ~member.indexOf('ello'); }).length; 

jsFiddle 。

只需单步执行数组并检查每个字符串。

 function isStringInArray(data, stringToFind) { for (var i = 0; i < data.length; i++) { if (data[i].indexOf(stringToFind) > -1) return true; } return false; } 

你可以这样做:

 function contains(arr, str) { var i = 0, len = arr.length; for (; i < len; ++i) { if (arr[i].indexOf(str) > -1) { return true; } } return false; } 

显然它在某些方面是天真的,例如它不考虑区分大小写,也不会告诉你匹配的项目是哪个或多少,但你可以轻松地修改它来做到这一点。