JavaScript类数组对象转换为数组对象的方法实例分析
2018-07-24 14:26
721 查看
本文实例分析了JavaScript类数组对象转换为数组对象的方法。分享给大家供大家参考,具体如下:
1、类数组对象:
拥有
length属性,可以通过下标访问;
不具有数组所具有的方法。
2、为什么要将类数组对象转换为数组对象?
数组对象Array有很多方法:
shift、
unshift、
splice、
slice、
concat、
reverse、
sort,ES6又新增了一些方法:
forEach、
isArray、
indexOf、
lastIndexOf、
every、
some、
map、
filter、
reduce等。由于类数组不具有数组所具有的操作数组的方法,将类数组转换为数组之后就能调用这些强大的方法,方便快捷。更多JavaScript数组的方法请见:https://www.geek-share.com/detail/2743404927.html
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
说明:使用
instanceof和
constructor判断数组类型的问题在于,它假定只有一个运行环境,如果网页中包含多个框架,那么实际上存在两个以上不同的全局执行环境,进而存在两个不同版本的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事件相关操作与技巧大全》、《JavaScript数据结构与算法技巧总结》、《JavaScript操作DOM技巧总结》及《JavaScript字符与字符串操作技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- 对象和数组相互转换的方法实例
- Json字符串转换为JS对象的高效方法实例
- php中对象转换数组与数组转换对象实例
- php多层数组与对象的转换实例代码
- JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
- 对象数组转换为DataTable的方法
- php中对象转换数组与数组转换对象实例
- JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
- javascript中Array数组的迭代方法实例分析
- PHP将对象转换成数组的方法(兼容多维数组类型)
- JavaScript通过function定义对象并给对象添加toString()方法实例分析
- JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
- Python中的对象,方法,类,实例,函数用法分析
- json对象与数组以及转换成js对象的方法
- 最近在做JSON对象转换数组 因为有2个方法,进行了一下数据测试
- 关于未将对象引用设置到对象实例简单原理分析,与解决方法
- JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
- PHP将对象转换成数组的方法(兼容多维数组类型)
- JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
- 把传过来的Object对象转换成Collection类型的对象。isArray()方法,判定此Class对象是否表示一个数组类。java.lang.reflect.Array 对任意数组进行操作