рідна функція 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метод є найефективнішим, але він не такий короткий або читабельний, як instanceof Arrayі не такий швидкий, якArray.isArray але це код ES5, і я, як правило, уникаю використання його для перенесення.
Я особисто рекомендую вам спробувати скористатися underscoreцією бібліотекою із загальними корисними методами. Він має безліч корисних функцій, які висушують ваш код.
utilбібліотеку node.js -require('util').isArray(arr)nodejs.org/api/util.html#util_util_isarray_object