侧边栏壁纸
  • 累计撰写 197 篇文章
  • 累计收到 496 条评论

JavaScript中的伪数组转换

2019-11-4 / 0 评论 / 40 阅读

在进行转换之前首先我们要明白什么是伪数组。

伪数组就是指一个类似于数组的集合。同样它具有length以及index数字索引

好了我们先来定义一个伪数组

let pseudoArray = {

0: 'hello',

1: 'world',

length: 2

}

好了一个经典的伪数组就定义好了

这时候我们使用forEach遍历一下

pesudoArray.forEach(x => {
    console.log(x)
})
// 这个时候运行程序浏览器会报错
// lesson2.js:6 Uncaught TypeError: pseudoArray.forEach is not a function at lesson2.js:6
因为它看似数组其实不然

我们这个时候需要转换一下

怎么转换呢?

Es5之中我们会使用数组对象上面的一个方法

let array = [].slice.call(pseudoArray)
array.forEach(x => {
    console.log(x)
})
// 运行程序这个时候会正确的输出
// hello
// world
有的同学可能会说很麻烦啊!有没有更简单的方法呢?

在ES6中array提供了from方法可以直接转化

let array = Array.from(pseudoArray)
array.forEach(x => {
     console.log(x)
})
// 这个时候程序也可以正常的运行
// hello
// world
// 和之前ES5中繁琐的步骤是一样的

评论一下?

OωO
取消