嘘~ 正在从服务器偷取页面 . . .

js判断数组的方法


js 判断数组的四种方法

  1. 通过instanceof运算符用于检验构造函数的prototype 属性是否出现在对象的原型链中的任何位置,返回一个布尔值
let arr = [];
let a = arr instanceof Array;
console.log(a);  //true
let obj = {};
let b = obj instanceof Array;
console.log(b); //false
  1. 通过 constructor 判断

实例的构造函数属性 constructor 指向构造函数,通过 constructor 属性可以判断是否为一个数组

let arr =[1,2,3]
arr.constructor === Array; //true
  1. 通过 Object.prototype.toString.call() 进行判断

Object.prototype.toString.call() 可以获取到对象的不同类型

let arr = [1,2,3]
Object.prototype.toString.call(arr) === '[object Array]';
  1. 通过 Array.isArray() 判断

Array.isArray() 用于确定传递的值是否是一个数组,返回值是布尔值

let arr = [1,2,3]
Array.isArray(a); //true

有个问题是Array.isArray()是ES5新增的方法,目的就是提供一个稳定可用的数组判断方法,对于ES5之前不支持此方法的问题,我们其实可以做好兼容进行自行封装,如下:

if(!Array.isArray){
    Array.isArray = function(argument) {
        return Object.protutype.toString.call(argument) === '[object Array]'
    }
}

文章作者: 哲哲
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 哲哲 !
  目录