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 相关文章推荐
Javascript new Date().valueOf()的作用与时间戳由来详解
Apr 24 Javascript
jQuery简单实现图片预加载
Apr 20 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
May 03 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成&quot;...&quot;)
Nov 28 Javascript
详解JS: reduce方法实现 webpack多文件入口
Feb 14 Javascript
微信小程序 支付功能开发错误总结
Feb 21 Javascript
JS+HTML5 FileReader对象用法示例
Apr 07 Javascript
jQuery模拟实现天猫购物车动画效果实例代码
May 25 jQuery
简单谈谈JS中的正则表达式
Sep 11 Javascript
玩转Koa之核心原理分析
Dec 29 Javascript
vue使用微信JS-SDK实现分享功能
Aug 23 Javascript
java遇到微信小程序 &quot;支付验证签名失败&quot; 问题解决
Dec 22 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
玛琪朵 Macchiato
2021/03/03 咖啡文化
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
2015/11/25 PHP
PHP isset empty函数相关面试题及解析
2020/12/11 PHP
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
jquery 合并内容相同的单元格(示例代码)
2013/12/13 Javascript
jquerymobile局部渲染的各种刷新方法小结
2014/03/05 Javascript
javascript中style.left和offsetLeft的用法说明
2014/03/07 Javascript
用jquery模仿的a的title属性的例子
2014/10/22 Javascript
浅谈bootstrap源码分析之tab(选项卡)
2016/06/06 Javascript
node-http-proxy修改响应结果实例代码
2016/06/06 Javascript
vue实现动态数据绑定
2017/04/28 Javascript
MUI实现上拉加载和下拉刷新效果
2017/06/30 Javascript
详解Web使用webpack构建前端项目
2017/09/23 Javascript
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
vue实现消息的无缝滚动效果的示例代码
2017/12/05 Javascript
jQuery封装animate.css的实例
2018/01/04 jQuery
vue自定义指令directive实例详解
2018/01/17 Javascript
Vue脚手架编写试卷页面功能
2020/03/17 Javascript
原生小程序封装跑马灯效果
2020/10/21 Javascript
[00:49]完美世界DOTA2联赛10月28日开团时刻:随便打
2020/10/29 DOTA
python编程-将Python程序转化为可执行程序[整理]
2007/04/09 Python
python使用in操作符时元组和数组的区别分析
2015/05/19 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
python logging设置level失败的解决方法
2020/02/19 Python
python如何操作mysql
2020/08/17 Python
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
Zadig&Voltaire官网:法国时装品牌
2018/01/05 全球购物
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
水利学院求职自荐书
2014/02/01 职场文书
母亲节感恩活动记录
2014/03/16 职场文书
上班迟到检讨书范文300字
2014/11/02 职场文书
2014年林业工作总结
2014/12/05 职场文书
农业项目合作意向书
2015/05/08 职场文书
JS中如何优雅的使用async await详解
2021/10/05 Javascript
微软团队与 NASA 科学家和惠普企业(HPE)的工程师合作
2022/04/21 数码科技