整理了四种判断数组类型方法:
方法一: instance of方法
//声明变量
var arr = new Array();
var newArr = [];
var str = "";
var nul = null;
var und = undefined;
var obj = new Object();
var newObj = {};
//声明函数
function isArray(obj){
return obj instanceof Array ? true : false;
}
//调用函数,并获取结果
var result = isArray(arr);
//打印结果
console.log("result:",result); //true
方法二:构造函数(constructor)方法
//声明函数
function isArray(obj) {
var result = obj.constructor == Array ? true : false;
return result;
}
//测试结果
console.log(isArray([]));
console.log(isArray({}));
console.log(isArray(new Array()));
console.log(isArray(new Object()));
console.log(isArray("string"));
console.log(isArray(123));
console.log(isArray(true));
方法三:call方法
解释:
call():函数实例的call方法,可以指定函数内部this的指向(即函数执行时所在的作用域),然后在所指定的作用域中,调用该函数。
function isArray(obj) {
return Object.prototype.toString.call(obj);
}
var arr=[2,5,6,8];
var obj={name:'zhangsan',age:25};
var fn = function () {}
console.log(isArray(arr)); //[object Array]
console.log(isArray(obj)); //[object Object]
console.log(isArray(fn)); //[object function]
方法四:isArray方法
// ES5定义了Array.isArray:
var arr = isArray([]); //true
// var arr = isArray({}); //false
console.log("arr:", arr);
function isArray(obj) {
var result = Array.isArray(obj) ? true : false;
return result;
}