如何检查一个string数组是否包含JavaScript中的一个string?
我有一个string数组和一个string。 我想testing这个string对数组值,并应用条件的结果 – 如果数组包含string做“A”,否则做“B”。
我怎样才能做到这一点?
有一个indexOf
方法,所有数组(除了Internet Explorer 8及以下版本)都会返回数组中元素的索引,如果不在数组中,则返回-1:
if (yourArray.indexOf("someString") > -1) { //In the array! } else { //Not in the array }
如果您需要支持旧的IE浏览器,则可以使用MDN文章中的代码来填充此方法。
您可以使用indexOf
方法并使用contains
如下方法的“扩展”Array类:
Array.prototype.contains = function(element){ return this.indexOf(element) > -1; };
结果如下:
["A", "B", "C"].contains("A")
等于true
["A", "B", "C"].contains("D")
等于false
var stringArray = ["String1", "String2", "String3"]; return (stringArray.indexOf(searchStr) > -1)
创build这个函数原型:
Array.prototype.contains = function ( needle ) { for (i in this) { if (this[i] == needle) return true; } return false; }
然后你可以使用下面的代码在数组x中search
if (x.contains('searchedString')) { // do a } else { // do b }
这将为你做到这一点:
function inArray(needle, haystack) { var length = haystack.length; for(var i = 0; i < length; i++) { if(haystack[i] == needle) return true; } return false; }
我发现它在PHP的in_array()相当于堆栈溢出问题的JavaScript 。