рідна функція 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