利用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 相关文章推荐
使用TextRange获取输入框中光标的位置的代码
Mar 08 Javascript
JS date对象的减法处理实现代码
Dec 28 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
Jul 27 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
Nov 29 Javascript
同步文本框内容JS代码实现
Aug 04 Javascript
d3.js中冷门却实用的内置函数总结
Feb 04 Javascript
vue.extend与vue.component的区别和联系
Sep 19 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
Nov 14 jQuery
JS实现的新闻列表自动滚动效果示例
Jan 30 Javascript
js神秘的电报密码 哈弗曼编码实现
Sep 10 Javascript
Vue实现页面添加水印功能
Nov 09 Javascript
Vue文本模糊匹配功能如何实现
Jul 30 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
rrmdir php中递归删除目录及目录下的文件
2011/05/15 PHP
iis下php mail函数的sendmail配置方法(官方推荐)
2012/04/25 PHP
php实现改变图片直接打开为下载的方法
2015/04/14 PHP
PHP 布尔值的自增与自减的实现方法
2018/05/03 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
下载站控制介绍字数显示的脚本 显示全部 隐藏介绍等功能
2009/09/19 Javascript
js tab效果的实现代码
2009/12/26 Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
2014/03/13 Javascript
让人蛋疼的JavaScript语法特性
2014/09/30 Javascript
javascript判断数组内是否重复的方法
2015/04/21 Javascript
使用js获取地址栏参数的方法推荐(超级简单)
2016/06/14 Javascript
利用js获取下拉框中所选的值
2016/12/01 Javascript
详解NodeJs支付宝移动支付签名及验签
2017/01/06 NodeJs
聊聊JavaScript如何实现继承及特点
2017/04/07 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
跟老齐学Python之有容乃大的list(4)
2014/09/28 Python
Python中用psycopg2模块操作PostgreSQL方法
2017/11/28 Python
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
Python将一个Excel拆分为多个Excel
2018/11/07 Python
python基于exchange函数发送邮件过程详解
2020/11/06 Python
python里反向传播算法详解
2020/11/22 Python
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
2019/10/15 HTML / CSS
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
HTML5 SEO优化的一些建议
2020/08/27 HTML / CSS
蒂芙尼澳大利亚官方网站:Tiffany&Co. Australia
2017/08/27 全球购物
泰国汽车、火车和轮渡票预订网站:Bus Online Ticket
2017/09/09 全球购物
How to spawning asynchronous work in J2EE
2016/08/29 面试题
十八大报告观后感
2014/01/28 职场文书
廉洁校园实施方案
2014/05/25 职场文书
个人融资协议书
2014/10/02 职场文书
给领导敬酒词
2015/08/12 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
Python中相见恨晚的技巧
2021/04/13 Python
使用Django框架创建项目
2022/06/10 Python