JavaScript中的伪数组转换

    选择打赏方式

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

伪数组就是指一个类似于数组的集合。同样它具有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中繁琐的步骤是一样的

版权声明:若无特殊注明,本文皆为《 张宇童 》原创,转载请保留文章出处。
本文链接:JavaScript中的伪数组转换 https://www.zyt8.cn/h/189.html
正文到此结束

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗 胜利 不高兴 阴险 乖 酷 滑稽

评论信息框

吃奶的力气提交吐槽中...


既然没有吐槽,那就赶紧抢沙发吧!