2011-12-09 2 views
1

より正確で/クロスブラウザに対応しているのはどちらですか?これら2つの '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

これらのうちの1つは他と似ていません:-) – Pointy

+0

こんにちは皆さん、(このような)意味がない質問をすると、私は通常すべてを消去し、 'Close Plx'というタイトルを付けますが、私がこれを行うときにはいつも再開する人がいます。 .. 私は何をすべきか?助けて!? – ajax333221

+2

2番目の例の括弧はまったく必要ありません。また、 '!=='明らかに。 –

答えて

3

彼らは全く違うことをします。

何かが配列かどうかを調べる最初のテスト。 2番目のメソッドは、配列に指定されたオブジェクトが含まれているかどうかを調べます。

2

リンゴとオレンジを比較しています。

最初の関数は、オブジェクトと配列であるかどうかをチェックします。 2番目の関数は、配列内の値をチェックします。

2

これらの機能は異なる動作をします。最初は、変数が配列かどうかをチェックしようとしますが、2番目の要素は、要素が指定された配列にあるかどうかを調べます。最初のものはおそらくどこでも同じではないリテラル値 '[オブジェクト配列]'を使用しているため、それに匹敵するクロスブラウザではないでしょう

関連する問題