JavaScript 怎么判断变量是否为数组
Array.isArray
直接使用 Array.isArray
是最简单的方式 ,它现在已经在大部分浏览器中都能使用,作用是检查任意 JS 对象是否为数组
let arr = [1,2,3,4,5];
let obj = {};
let str = "string";
let num = 12345;
let undef = undefined;
Array.isArray(arr); // true
Array.isArray(obj); // false
Array.isArray(str); // false
Array.isArray(num); // false
Array.isArray(undef); // false
其他方式
在不支持 Array.isArray
的老版本浏览器中,我们可以检查对象的原型来判断是否为数组
/**
* 判断数据类型是否为数组
*/
function isArray(data) {
return Object.prototype.toString.call(data) === '[object Array]';
}
let arr = [1,2,3,4,5];
let obj = {};
let str = "string";
let num = 12345;
let undef = undefined;
isArray(arr); // true
isArray(obj); // false
isArray(str); // false
isArray(num); // false
isArray(undef); // false
使用第三方库
Lodash 中的 isArray
函数可以用来判断数组,案例如下:
_.isArray([1, 2, 3]);
// => true
_.isArray(document.body.children);
// => false
_.isArray('abc');
// => false
_.isArray(_.noop);
// => false
版权声明:[自由转载-注明出处-非商用-非衍生] (知识共享许可协议)