怎么判断一个数组是数组呢?
其实这个也是一个常考的题目。在面试的过程中,更是一个高频的面试题
1、数组方法 isArray()
Array.isArray(variable);
这是js的一个方法,专门用来测试对象是否是Array类型。
举例:
由例子可知,此方法是即为便利的,直接就能对数据的类型进行判断。
2、原型 prototype + toString + call
Object.prototype.toString.call(variable).indexOf(‘Array’) !== -1;
Object.prototype.toString.call() 使用了 toString方法,所以返回值是一个字符串
var arr = [1,2]
var obj = {a:1}
Object.prototype.toString.call(arr) //"[object Array]"
Object.prototype.toString.call(obj) //"[object Object]"
所以要使用 indexOf() 来进行二次判断,看返回值有没有 Array
这个关键字
Object.prototype.toString.call(arr).indexOf('Array') // 8
Object.prototype.toString.call(arr).indexOf('Object') // -1
Object.prototype.toString.call(arr).indexOf('Array') !==-1 //true
Object.prototype.toString.call(arr).indexOf('Object') !==-1 //false
这个方法比之 第一种,稍显麻烦一些,但是也是可以精确判断是否为数组