课程名称:再学JavaScript ES(6-10)全版本语法大全
课程章节:2-8 Array.from(如何将伪数组转换成数组?)
课程讲师: 快乐动起来呀
课程内容:
将伪数组转换成数组
函数获取不定参的arguments和NodeList(如获取的所有p标签)是集合的概念,不是真正意义的数组,集合不能调用数组原生的API。
常见的伪数组的对象是DOM操作返回的NodeList集合,以及函数内部的arguments对象,Array.from都可以将它们转为真正的数组。
Array.from()方法就是将一个伪数组对象或者可遍历对象转换成一个真正的数组,也是ES6的新增方法。
那么什么是伪数组对象呢?所谓伪数组对象,最基本的要求就是具有length属性的对象。
ES5伪数组转换成数组:
let args = [].slice.call(arguments) //collection
let imgs = [].slice.call(document.querySelectorAll(‘img’)) //NodeList
let args = Array.from(arguments)
let imgs = Array.from(document.querySelectorAll(‘img’))
imgs.forEach() //转换为数组后,就可以用forEach遍历
要将一个伪数组对象转换为一个真正的数组,必须具备以下条件:
该类数组对象必须具有length属性,用于指定数组的长度。如果没有length属性,那么转换后的数组是一个空数组。
该类数组对象的属性名必须为数值型或字符串型的数字
该类数组对象的属性名可以加引号,也可以不加引号
Array.from(伪数组,支持一个遍历的函数)
课程收获:增添新的方法