我需要一個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