JavaScript函数inArray

我需要一个JavaScript函数,可以接受一个string和一个数组,并返回true,如果该string是在数组中..

function inArray(str, arr){ ... } 

警告:它不能使用任何JavaScript框架。

你可以做一个数组原型函数ala:

 Array.prototype.hasValue = function(value) { var i; for (i=0; i<this.length; i++) { if (this[i] === value) return true; } return false; } if (['test'].hasValue('test')) alert('Yay!'); 

注意使用'==='而不是'=='可以改变,如果你需要更less的特定匹配…否则[3] .hasValue('3')将返回false。

像这样的东西?

 function in_array(needle, haystack) { for(var key in haystack) { if(needle === haystack[key]) { return true; } } return false; } 

看看这个相关的问题 。 这是来自顶级答案的代码。

 function contains(a, obj) { var i = a.length; while (i--) { if (a[i] === obj) { return true; } } return false; } 

小心:

indexOf()使用部分数据。 如果你有'12','1'

indexOf('1')会让你索引'12'而不是'1'