JavaScript函数inArray
我需要一个JavaScript函数,可以接受一个string和一个数组,并返回true,如果该string是在数组中..
function inArray(str, arr){ ... }
警告:它不能使用任何JavaScript框架。
你可以使用arr.indexOf()
你可以做一个数组原型函数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'