JavaScript类数组对象转换为数组对象的方法实例分析


Posted in Javascript onJuly 24, 2018

本文实例分析了JavaScript类数组对象转换为数组对象的方法。分享给大家供大家参考,具体如下:

1、类数组对象:

拥有length属性,可以通过下标访问;

不具有数组所具有的方法。

2、为什么要将类数组对象转换为数组对象?

数组对象Array有很多方法:shiftunshiftsplicesliceconcatreversesort,ES6又新增了一些方法:forEachisArrayindexOflastIndexOfeverysomemapfilterreduce等。由于类数组不具有数组所具有的操作数组的方法,将类数组转换为数组之后就能调用这些强大的方法,方便快捷。更多JavaScript数组的方法请见:https://3water.com/article/144359.htm

3、类数组对象转换为数组对象的方法:

1) Array.prototype.slice.call(arrayLike)Array.prototype.slice.call(arrayLike, 0)[].slice.call (arrayLike)[].slice.call (arrayLike, 0)

var div1 = Array.prototype.slice.call(document.querySelectorAll('div'), 0);
var div2 = Array.prototype.slice.call(document.querySelectorAll('div'));
var div3 = [].prototype.slice.call(document.querySelectorAll('div'), 0);
var div4 = [].prototype.slice.call(document.querySelectorAll('div'));

2) Array.from(arrayLike)

var divs = Array.from(document.querySelectorAll('div'));

3) 原生JavaScript转换

var length = arrayLike.length;
var arr = [];
for (var i = 0; i < length; i++) {
  arr.push(arrayLike[i]);
  return arr;
}

4、JavaScript如何判断一个对象是否为数组?

使用typeof运算符不能判断一个对象是否为数组,因为typeof arr返回的是object而不是array

1) arr instanceof Array返回true

2) arr.constructor == Array返回true

说明:使用instanceofconstructor判断数组类型的问题在于,它假定只有一个运行环境,如果网页中包含多个框架,那么实际上存在两个以上不同的全局执行环境,进而存在两个不同版本的Array构造函数,如果从一个框架向另一个框架传入一个数组,那么传入的数组与第二个框架中原生创建的数组分别具有各自不同的构造函数,也就是说,object.constructor == Array 会返回false。

原因:Array属于引用型数据,传递过程仅仅是引用地址的传递,每个页面的Array原生对象所引用的地址是不一样的,在子页面声明的Array所对应的构造函数,是子页面的Array对象,父页面进行判断时使用的Array并不等于子页面的Array。

3) Array.isArray(arr)方法返回true

ES5新增了Array.isArray()方法,这个方法的目的是:最终确定一个值是否是数组,不管它是在哪个全局环境创建的。

4) Object.prototype.toString.call(arr) === "[object Array]"返回true

这是最简单的判断一个对象是否为数组的方法。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Jquery ui css framework
Jun 28 Javascript
javascript (用setTimeout而非setInterval)
Dec 28 Javascript
javascript中数组中求最大值示例代码
Dec 18 Javascript
用JS实现图片轮播效果代码(一)
Jun 26 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
Aug 02 Javascript
React Native自定义控件底部抽屉菜单的示例
Feb 08 Javascript
关于JavaScript中高阶函数的魅力详解
Sep 07 Javascript
基于游标的分页接口实现代码示例
Nov 12 Javascript
解决vue更新路由router-view复用组件内容不刷新的问题
Nov 04 Javascript
js实现购物车商品数量加减
Sep 21 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
Nov 17 Vue.js
微信小程序APP页面的之间的相互传递参数以及自定义组件
Apr 19 Javascript
微信小程序实现滴滴导航tab切换效果
Jul 24 #Javascript
JavaScript引用类型Array实例分析
Jul 24 #Javascript
详解微信小程序调起键盘性能优化
Jul 24 #Javascript
原生JavaScript实现remove()和recover()功能示例
Jul 24 #Javascript
js+canvas实现验证码功能
Sep 21 #Javascript
微信小程序网络请求封装示例
Jul 24 #Javascript
js实现敏感词过滤算法及实现逻辑
Jul 24 #Javascript
You might like
实用函数4
2007/11/08 PHP
Ajax+PHP边学边练 之五 图片处理
2009/12/03 PHP
php无限遍历目录示例
2014/02/21 PHP
PHP微框架Dispatch简介
2014/06/12 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
ThinkPHP中I(),U(),$this-&gt;post()等函数用法
2014/11/22 PHP
PHP图像裁剪缩略裁切类源码及使用方法
2016/01/07 PHP
php上传大文件设置方法
2016/04/14 PHP
PHP提取字符串中的手机号正则表达式怎么写
2017/07/17 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
基于jquery的大众点评,分类导航实现代码
2011/08/23 Javascript
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
2011/10/29 Javascript
js里怎么取select标签里的值并修改
2012/12/10 Javascript
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
Javascript 构造函数详解
2014/10/22 Javascript
jquery+css3实现会动的小圆圈效果
2016/01/27 Javascript
Jquery操作cookie记住用户名
2016/03/29 Javascript
JavaScript正则表达式实例详解
2016/10/16 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
2020/04/20 Javascript
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
2017/07/11 Python
Python编程实现正则删除命令功能
2017/08/30 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
pandas 对group进行聚合的例子
2019/12/27 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
Pycharm连接远程服务器过程图解
2020/04/30 Python
快速创建python 虚拟环境
2020/11/28 Python
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
常用UNIX 命令(Linux的常用命令)
2015/12/26 面试题
金属材料工程毕业生个人的自我评价
2013/11/28 职场文书
幼儿园区域活动总结
2014/05/08 职场文书
涉密人员保密承诺书
2014/05/28 职场文书
高中生逃课检讨书
2014/10/10 职场文书
毕业论文致谢部分怎么写
2015/05/14 职场文书
springboot使用Redis作缓存使用入门教程
2021/07/25 Redis
springboot用户数据修改的详细实现
2022/04/06 Java/Android
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js