Javascript 示例: 检查对象是否为数组的五大方法介绍

103 阅读2分钟

在这篇文章中,你将了解到检查一个对象是否为数组的若干方法。

在javascript中,没有类型检查,声明的变量持有任何类型的数据,包括阵列或任何类型。我们需要根据存储的数据来了解对象的类型。

在javascript中,有很多方法来检查对象的类型是否是数组。

  • 对象构造函数
  • 数组isArray的本地方法
  • Jquery isArray方法
  • lodashJs & underscorejs库的isArray方法
  • Angular isArray方法

检查对象是否属于数组类型

让我们声明以下两个对象,一个是数组,另一个是字符串。

let objArray=[1,5,61]
let obj="stringvalue";

根据你的项目库的使用情况,你可以从以下方法中选择一个方法。

对象构造器

对象构造器的名称返回对象的类型,如对象,数字,字符串,数组。下面检查构造器的名称是否为数组

function isArray(obj){
if (obj.constructor.name == "Array") {
return true;
}
return false;
}
console.log(isArray(objArray))
console.log(isArray(obj))

数组isArray方法

数组内置方法isArray检查对象,这是javascript语言中本地方法的一部分,不需要安装库。如果是数组,返回true;如果不是数组,返回false。

console.log(Array.isArray(objArray)) //true
console.log(Array.isArray(obj)) //false

isArray本地方法不支持旧的浏览器

isArray的使用支持

你可以检查浏览器对[isArray caniuse]的支持(https://caniuse.com/#search=isArray)

如果不支持旧的浏览器,你必须写一个polyfill,增加对旧浏览器的支持。

Array.prototype.isArray = function(obj) {
  return Object.prototype.toString.call(obj) === '[object Array]';
};

Jquery isArray方法

如果应用程序是基于传统的jquery,isArray方法被使用。

语法和例子

jQuery.isArray(object) // syntax
jQuery.isArray(objArray) //true
jQuery.isArray(obj) //false

underscorejs, lodash isArray方法

如果你的项目使用underscorejs库,isArray方法会返回true - 用于数组,false - 用于其他类型的脚本。

console.log(_.isArray(objArray)) //true
console.log(_.isArray(obj)) //false

同样的代码可以在lodashJs 项目中使用

AngularJS对象的数组类型检查

AngularJS 项目中,Angular全局对象提供了isArray方法来检查一个对象是否包含数组类型。

var values = [{ id: '1', name: 'Franc' }, { id: '2', name: 'John' } ];
angular.isArray(values) // true