ネイティブV8機能。それは速いです、それは常に正しいです。これはES5の一部です。
オブジェクトが配列コンストラクターで作成されたかどうかを確認します。
アンダースコアからの方法。これが彼らのソースから取られたスニペットです
var toString = Object.prototype.toString,
nativeIsArray = Array.isArray;
_.isArray = nativeIsArray || function(obj) {
return toString.call(obj) === '[object Array]';
};
このメソッドはオブジェクトを受け取り、そのオブジェクトのObject.prototype.toString
メソッドを呼び出します。これは常に[object Array]
配列に対して返されます。
私の個人的な経験でtoString
は、この方法を尋ねることが最も効果的であると思いますが、それはES5コードほど短くも読みやすくinstanceof Array
も速くもありませんが、それはArray.isArray
ES5コードであり、移植性のために使用することを避ける傾向があります。
個人的にunderscore
は、一般的なユーティリティメソッドを含むライブラリであるを使用することをお勧めします。それはあなたのコードを乾かす多くの便利な関数を持っています。
util
ライブラリ-require('util').isArray(arr)
nodejs.org/api/util.html#util_util_isarray_object