利用JS判断元素是否为数组的方法示例


Posted in Javascript onJanuary 08, 2021

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

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判断

Obiect的每个实例都有构造函数constructor,保存着创建每个对象的函数

利用JS判断元素是否为数组的方法示例

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

总结

到此这篇关于利用JS判断元素是否为数组的文章就介绍到这了,更多相关JS判断元素为数组内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
jquery 得到当前页面高度和宽度的两个函数
Feb 21 Javascript
分享十五个最佳jQuery 幻灯插件和教程
Mar 27 Javascript
jQuery UI 实现email输入提示实例
Aug 15 Javascript
使用typeof判断function是否存在于上下文
Aug 14 Javascript
jquery获取radio值(单选组radio)
Oct 16 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
Apr 13 Javascript
jQuery实现伸展与合拢panel的方法
Apr 30 Javascript
基于JavaScript实现 网页切出 网站title变化代码
Apr 03 Javascript
jQuery密码强度验证控件使用详解
Jan 05 Javascript
Vue.js路由实现选项卡简单实例
Jul 24 Javascript
Vue 3.0 全家桶抢先体验
Apr 28 Javascript
微信小程序实现菜单左右联动
May 19 Javascript
JS实现页面侧边栏效果探究
Jan 08 #Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
Jan 08 #Vue.js
vue-quill-editor插入图片路径太长问题解决方法
Jan 08 #Vue.js
详解Typescript里的This的使用方法
Jan 08 #Javascript
Node.js 中如何收集和解析命令行参数
Jan 08 #Javascript
vue编写简单的购物车功能
Jan 08 #Vue.js
three.js中多线程的使用及性能测试详解
Jan 07 #Javascript
You might like
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
收藏Javascript中常用的55个经典技巧
2007/08/12 Javascript
javascript 动态加载 css 方法总结
2009/07/11 Javascript
javascript基本类型详解
2014/11/28 Javascript
浅谈jquery中delegate()与live()
2015/06/22 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
2016/06/08 Javascript
第六篇Bootstrap表格样式介绍
2016/06/21 Javascript
阿里云ecs服务器中安装部署node.js的步骤
2016/10/08 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
使用 Vue.js 仿百度搜索框的实例代码
2017/05/09 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
解决vue中监听input只能输入数字及英文或者其他情况的问题
2018/08/30 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
封装Vue Element的table表格组件的示例详解
2020/08/19 Javascript
vue中使用router全局守卫实现页面拦截的示例
2020/10/23 Javascript
跟老齐学Python之用while来循环
2014/10/02 Python
Python运算符重载详解及实例代码
2017/03/07 Python
使用Python对SQLite数据库操作
2017/04/06 Python
python登录并爬取淘宝信息代码示例
2017/12/09 Python
python 寻找优化使成本函数最小的最优解的方法
2017/12/28 Python
Python3.5 创建文件的简单实例
2018/04/26 Python
python批量修改文件编码格式的方法
2018/05/31 Python
对django的User模型和四种扩展/重写方法小结
2019/08/17 Python
如何用python爬取微博热搜数据并保存
2021/02/20 Python
金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-> (一千零一拾一元整)输出
2015/05/29 面试题
小学师德标兵先进事迹材料
2014/05/25 职场文书
公司合作意向书范文
2014/07/30 职场文书
励志演讲稿200字
2014/08/21 职场文书
酒店爱岗敬业演讲稿
2014/09/02 职场文书
先进班组事迹材料
2014/12/25 职场文书
2015年项目经理工作总结
2015/04/30 职场文书
学校体育节班级口号
2015/12/25 职场文书
劳务派遣管理制度(样本)
2019/08/23 职场文书