利用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对象和DOM对象使用说明
Jun 25 Javascript
js 创建快捷方式的代码(fso)
Nov 19 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
Jan 04 Javascript
jquery将一个表单序列化为一个对象的方法
Jan 03 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
Mar 01 Javascript
用JS实现轮播图效果(二)
Jun 26 Javascript
js中判断变量类型函数typeof的用法总结
Aug 09 Javascript
jQuery如何解决IE输入框不能输入的问题
Oct 08 Javascript
微信小程序左滑删除效果的实现代码
Feb 20 Javascript
高效的jQuery代码编写技巧总结
Feb 22 Javascript
jQuery插件imgAreaSelect基础讲解
May 26 jQuery
浅谈vue项目打包优化策略
Sep 29 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
PHP 全角转半角实现代码
2010/05/16 PHP
smarty简单入门实例
2014/11/28 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
Laravel5.1框架路由分组用法实例分析
2020/01/04 PHP
分享一个asp.net pager分页控件
2012/01/04 Javascript
jQuery设置和获取HTML、文本和值示例
2014/07/08 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
2016/07/27 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
vue组件实例解析
2017/01/10 Javascript
深入理解Vue 的钩子函数
2018/09/05 Javascript
详解如何构建一个Angular6的第三方npm包
2018/09/07 Javascript
js实现每日签到功能
2018/11/29 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
js实现烟花特效
2020/03/02 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
微信小程序实现购物车功能
2020/11/18 Javascript
Python实现扫描指定目录下的子目录及文件的方法
2014/07/16 Python
使用Python对SQLite数据库操作
2017/04/06 Python
python区分不同数据类型的方法
2019/10/14 Python
利用CSS3制作简单的3d半透明立方体图片展示
2017/03/25 HTML / CSS
html5移动端自适应布局的实现
2020/04/15 HTML / CSS
玩具反斗城葡萄牙官方商城:Toys"R"Us葡萄牙
2016/10/21 全球购物
英语专业应届生求职信范文
2013/11/15 职场文书
敬老月活动总结
2014/08/28 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
护士自荐信范文
2015/03/25 职场文书
大学生读书笔记范文
2015/07/01 职场文书
小学生暑假安全公约
2015/07/14 职场文书
婚宴父母致辞
2015/07/27 职场文书
中国梦宣传标语口号
2015/12/26 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
left join、inner join、right join的区别
2021/04/05 MySQL
springboot使用Redis作缓存使用入门教程
2021/07/25 Redis
Python 数据可视化神器Pyecharts绘制图像练习
2022/02/28 Python
Smart 2 车辆代号 HC11 全新谍照曝光
2022/04/21 数码科技