首页 >

ES6怎么将伪数组转换成数组

web前端|前端问答ES6怎么将伪数组转换成数组
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"]

  • 暂无相关文章
  • Posted in 未分类