我需要一个JavaScript函数,可以在一个字符串数组,如果该字符串数组中返回true ..javascript函数inArray
function inArray(str, arr){
...
}
警告:不能使用任何JavaScript框架。
我需要一个JavaScript函数,可以在一个字符串数组,如果该字符串数组中返回true ..javascript函数inArray
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!');
注意使用“===”而不是“==”你可以改变,如果你需要更少的具体的匹配。否则... [3] .hasValue('3')将返回false。
包括在该变种的(...)索引逻辑误导,因为它表明var的范围只在for循环内(对于多语言程序员)。但是,范围是整个功能。另外,在变量范围的最高点声明变量通常被认为是一种很好的做法,也是避免范围冲突的好方法。 – Kato 2011-11-08 18:22:36
看看this related question。以下是最高票数答案的代码。
function contains(a, obj) {
var i = a.length;
while (i--) {
if (a[i] === obj) {
return true;
}
}
return false;
}
这样的事情?
function in_array(needle, haystack)
{
for(var key in haystack)
{
if(needle === haystack[key])
{
return true;
}
}
return false;
}
小心:
的indexOf()使用部分数据。如果你有“12”,“1”
的indexOf(“1”)将让你的“12”不是“1”
有趣。这个答案(.indexOf(。))似乎适用于我的目的。作为一个新手,我很想知道为什么一种语言中的方法不如自定义函数更受欢迎。 – prototype 2012-10-27 03:25:30