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)
上一篇 2025年6月27日 下午12:01
下一篇 2025年6月27日 下午12:22


相关推荐

  • 分布式互斥

    分布式互斥分布式互斥前言什么是分布式互斥 如何才能让分布式系统里的程序互斥地访问临界资源霸道总裁 集中式算法民主协商 分布式算法轮值 CEO 令牌环算法知识扩展 有适合大规模系统中的分布式互斥算法吗 总结前言如何让分布在不同计算机上的程序具有 团队精神 如何让程序通过协作共同去达成一个业务目标 什么是分布式互斥 你正在一家餐厅使用自助咖啡机泡制咖啡 突然有个人过来挪走了你的杯子 开始泡制他自己的咖啡 你耐着性子等他操作完 继续泡制自己的咖啡 结果你开始没多久 他又回来中断了你泡制咖啡的过程 相信要不了几

    2026年3月19日
    1
  • seo关键词快速排名流量有多大_seo站内优化技巧

    seo关键词快速排名流量有多大_seo站内优化技巧SEO的一个重要工作就是,通过优化关键词的方式,将网站做到搜索页的第一页,甚至第一页的第一名的位置。比如,你们公司是做鲜花业务,那么用户搜索“玫瑰”的时候,第一眼就能搜到你的网站。…

    2025年12月3日
    6
  • 提取视频中的音频——python三行程序搞定「建议收藏」

    提取视频中的音频——python三行程序搞定「建议收藏」写在开头提取音频安装python包提取音频分析音频安装python包读取音频matplotlib画信号强度图librosa画信号强度图写在开头  身处数据爆炸增长的时代,各种各样的数据都飞速增长,视频数据也不例外。我们可以使用python来提取视频中的音频,而这仅仅需要安装一个体量很小的python包,然后执行三行程序!  语音数据在数据分析领域极为重要。比如可以分析语义、口音、根据人的情绪等等。可以应用于偏好分析、谎话检测等等。提取音频  需要..

    2022年5月12日
    48
  • 百度AI文心一言怎么做用户画像_百度AI文心一言用户画像分析报告教程

    百度AI文心一言怎么做用户画像_百度AI文心一言用户画像分析报告教程

    2026年3月12日
    2
  • CSS 文本超出隐藏,并显示省略号

    CSS 文本超出隐藏,并显示省略号CSS 文本超出隐藏 并显示省略号

    2026年3月18日
    2
  • 用户使用情况报告_新系统使用情况反馈

    用户使用情况报告_新系统使用情况反馈用户来源我们app的测评用户基本都是学生群体,有少数来自社会群体,年龄基本在18~25岁,因为我们的app本来也就是针对这部分群体的。来源基本是同学、朋友,据统计到目前为止有32人下载app(太多同

    2022年8月4日
    9

发表回复

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

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