JS判断元素是否为数组的方式

JS判断元素是否为数组的方式此处提供可供验证的数据类型 leta 1 2 3 4 5 6 letb name 张飞 type tank name 关羽 type soldier name 刘备 type shooter letc 123 letd www lete name 安琪拉 type mage 1 通过 Array isArray Array is

此处提供可供验证的数据类型

 let a = [1,2,3,4,5,6]; let b = [ {name: '张飞', type: 'tank'}, {name: '关羽', type: 'soldier'}, {name: '刘备', type: 'shooter'}, ]; let c = 123; let d = 'www'; let e = {name: '安琪拉', type: 'mage'}; 

1.通过Array.isArray()

Array.isArray()能判断一个元素是否为数组,如果是就返回true,否则就返回false

 console.log(Array.isArray(a)); // true console.log(Array.isArray(b)); // true console.log(Array.isArray(c)); // false console.log(Array.isArray(d)); // false console.log(Array.isArray(e)); // false 

2.通过instanceof判断

instanceof运算符用于检测某个实例是否属于某个对象原型链中

 console.log(a instanceof Array); // true console.log(b instanceof Array); // true console.log(c instanceof Array); // false console.log(d instanceof Array); // false console.log(e instanceof Array); // false 

还可以用于判断对象

console.log(e instanceof Object); // true 

判断是否为数组就是检测Arrray.prototype属性是否存在于变量数组(a,b)的原型链上,显然a,b为数组,拥有Arrray.prototype属性,所以为true

3.通过对象构造函数的constructor判断

console.log(a.constructor === Array); // true console.log(b.constructor === Array); // true 

以下包含判断其它的数据类型验证

console.log(c.constructor === Number); // true console.log(d.constructor === String); // true console.log(e.constructor === Object); // true 

4.通过Object.prototype.toString.call()判断

通过原型链查找调用

console.log(Object.prototype.toString.call(a) === '[object Array]'); // true console.log(Object.prototype.toString.call(b) === '[object Array]'); // true 

以下包含判断其它的数据类型验证

console.log(Object.prototype.toString.call(c) === '[object Number]'); // true console.log(Object.prototype.toString.call(d) === '[object String]'); // true console.log(Object.prototype.toString.call(e) === '[object Object]'); // true 

5.通过对象原型链上的isPrototypeOf()判断

Array.prototype属性为Array的构造函数原型,里面包含有一个方法isPrototypeOf()用于测试一个对象是否存在于另一个对象的原型链上。

 console.log(Array.prototype.isPrototypeOf(a)); // true console.log(Array.prototype.isPrototypeOf(b)); // true console.log(Array.prototype.isPrototypeOf(c)); // false console.log(Array.prototype.isPrototypeOf(d)); // false console.log(Array.prototype.isPrototypeOf(e)); // false 

——为自己整理学习并附上测试代码,欢迎大家采纳及提出意见

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233715.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • matlab int8 矩阵,unit8_matlab数据类型转换——int8转换成unit8「建议收藏」

    matlab int8 矩阵,unit8_matlab数据类型转换——int8转换成unit8「建议收藏」在一个驱动程序中看到uint16,uint32,unit8,int8…uint16:无符号16bit整数,uint32:无符号32bit整数,unit8:无符号8bit整数,int8:有符号8bit整数。其作用是程序更加简洁,增强可移植性和可维护性,尤其是在16位机器,32位,或者是64位机器上相互之间移植的时候只需要修改这些宏定义就可以满足要求了,而不需要去修改整个工程里边的每一个变量定义…

    2022年9月17日
    0
  • java怎么导入项目?java已有项目如何导入eclipse?

    java怎么导入项目?java已有项目如何导入eclipse?java开发的小伙伴肯定有需要将别人的项目导入到自己电脑上的情况,那么应该如何操作呢?这里就以Java开发经常用到的eclipse软件为例,为大家介绍一下导入已有Java项目的方式。方法步骤1.首先我们打开eclipse软件,在里面我们找到左上角的file,点击展开之后选择里面的import选项,如图所示。2.我们在打开的窗口中找到general选项,展开之后找到【ExistingProjectsintoWorkspace】,之后点击next进入到下一步页面。3.之后会看到一个新的窗口,在

    2022年7月8日
    15
  • ModelSim安装破解出现Unable to checkout a license.Make sure you licence file…..错误

    ModelSim安装破解出现Unable to checkout a license.Make sure you licence file…..错误说了你们可能不信,装ModelSim软件,今天整整装了一天才弄好,一直出现下面的错误。下面详细说一下解决这个问题的办法:方法一:不正面解决这个问题在FPGA做仿真的时候,可以不需要单独破解版的ModelSim,直接使用Quartus软件自带的ModelSim-Altrea安装上面两个软件,然后在仿真的时候,路径设置对就可以这个时候,你安装的ModelSim在桌面的图标你可以发现是叫ModelSim-Altrea方法二:正面解决这个问题如果你跟我一样,非要安装独立的版本,当你遇到这个问题的

    2022年5月12日
    53
  • 将.db文件导入SQLServer2008数据库「建议收藏」

    将.db文件导入SQLServer2008数据库

    2022年3月4日
    45
  • asList存在的问题

    asList存在的问题1.避开基本类型数组转换列表陷阱问题实例:publicclassClient{publicstaticvoidmain(String[]args){int[]data={1,2,3,4,5};Listlist=Arrays.asList(data);System.out.println(li

    2025年5月26日
    1
  • 蓝桥杯集锦05(python3)

    蓝桥杯集锦05(python3)

    2021年4月18日
    180

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号