2011-12-09 73 views
1

哪個更準確/跨瀏覽器兼容?這兩個'isInArray'函數的區別?

實施例1

if(!Array.isArray) { 
    Array.isArray = function (arg) { 
    return Object.prototype.toString.call(arg) == '[object Array]'; 
    }; 
} 

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray


實施例2

function isInArray(arr,str) { 
    return (arr.indexOf(str) != -1); 
} 

-I丟失源 -

+3

其中之一不像其他的:-) – Pointy

+0

嗨,大家好,當我做一個沒有意義的問題時(比如這個問題),我通常會把所有東西都抹掉,然後放上標題'Close Plx',但是當我這樣做的時候,總會有人重新打開它。 .. 我該怎麼辦?幫我!? – ajax333221

+2

第二個例子中的元素完全不需要。另外,'!=='顯然。 –

回答

3

他們做了完全不同的事情。

第一次測試是否有數組。第二個測試看看數組是否包含給定的對象。

2

你在比較蘋果和橘子。

第一個函數檢查對象是否爲和數組。第二個函數檢查數組中的值。

2

這些功能做不同的事情。第一個嘗試檢查變量是否是數組,但第二個檢查元素是否在給定的數組中。第一個也可能不會是那個可比的跨瀏覽器,因爲它使用的是字面值'[object Array]',它可能在任何地方都不一樣,