判断一个数据是否为数组

怎么判断一个数组是数组呢?

其实这个也是一个常考的题目。在面试的过程中,更是一个高频的面试题

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

这个方法比之 第一种,稍显麻烦一些,但是也是可以精确判断是否为数组

instanceof

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章