ES6
web前端-前端问答
如何在线制作网站源码,ubuntu终端使用英文,京东爬虫代码python,closure( php,seo岗位淘汰lzw
ECMAScript6新特性——伪数组thinkphp答题源码,vscode装不上,msi ubuntu 死机,tomcat加密的作用,大米 爬虫,plus diy.php,江门网络seo哪家好,上传电影赚钱网站源码,js广告模板下载lzw
什么是伪数组 :如果一个对象的所有键都是正整数或零,并且有length属性,那么这个对象就很像数组,称为伪数组。虾米音乐源码,ubuntu启动后卡在,怎样配置tomcat8,爬虫箱圆形,php日期代码,搜索引擎优化(SEO)推广方案lzw
典型的伪数组:arguments对象,大多数的DOM元素集,还有字符串。示例
let arrayLike = { "0": "a", "1": "b", "2": "c", "length": 3}
像上面的 arrayLike 对象,有 length 属性,key 也是有序序列。
所以可以遍历,也可以查询长度。但却不能调用数组的方法。比如 push、pop 等方法。
在 ES6 之前,还有一个常见的伪数组:arguments。
arguments 看上去也很像一个数组,但它没有数组的方法。
比如 arguments.push(1) ,这样做一定会报错。
ES6怎么将伪数组转换成数组
在ES6中,可以利用Array类型的from 方法来将伪数组转换成数组。
Array.from()方法用于将两类对象转换为真正的数组:
1、类似数组的对象,可以理解为“伪数组”
2、可遍历对象(比如字符串)
//声明变量let变量,const常量let btns=document.getElementsByName("button");console.log("btns",btns);//得到一个伪数组//此处出现异常:Uncaught TypeError:btns.forEach is not a function btns.forEach(item=>console.log(item))Array.from(btns).forEache(item=>console.log(item))//将伪数组转换为数组
Array.from 的主要作用就是把伪数组和可遍历对象转换成数组的。
说“主要作用”的原因是因为 Array.from 还提供了2个参数可传。这样可以延伸很多种小玩法。
Array.from 的第二个参数是一个函数,类似 map遍历 方法。用来遍历的。
Array.from 的第三个参数接受一个 this 对象,用来改变 this 指向。
第三个参数的用法(不常用)
let helper = { diff: 1, add (value) { return value + this.diff; // 注意这里有个 this }};function translate () { return Array.from(arguments, helper.add, helper);}let numbers = translate(1, 2, 3);console.log(numbers); // 2, 3, 4
扩展知识:把字符串转成数组
let msg = 'hello';let msgArr = Array.from(msg);console.log(msgArr);// 输出: ["h", "e", "l", "l", "o"]