首页 > 编程语言 > 详细

es6 Array.form将类数组或者对象 转化为数组

时间:2020-05-31 11:44:38      阅读:120      评论:0      收藏:0      [点我收藏+]

Array.from()方法就是将一个[类数组对象][或者可遍历对象]转换成一个[真正的数组]

那么什么是类数组对象呢?所谓类数组对象,最基本的要求就是具有length属性的对象。

       let arrayLike = {
            0: ‘ll‘,
            1: ‘60‘,
            2: ‘男‘,
            3: [‘重庆‘, ‘四川‘],
            ‘length‘: 4
        }
        let arr = Array.from(arrayLike);
        console.log(arr);

技术分享图片

===================
如果没有length:4,那么就会转成一个空数组

 let arrayLike = {
            0: ‘ll‘,
            1: ‘60‘,
            2: ‘男‘,
            3: [‘重庆‘, ‘四川‘],
        }
        let arr = Array.from(arrayLike);
        console.log(arr);  返回[]

对象的属性名必须为数值型或字符串型

 let arrayLike = {
            bname: ‘ll‘,
            asa: ‘60‘,
            bb: ‘男‘,
            cc: [‘重庆‘, ‘四川‘],
            length: 4
        }
        let arr = Array.from(arrayLike);
        console.log(arr);    [undefined, undefined, undefined, undefined]

另外

由此可见,要将一个类数组对象转换为一个真正的数组,必须具备以下条件:

  1、该类数组对象必须具有length属性,用于指定数组的长度。如果没有length属性,那么转换后的数组是一个空数组。上面已经验证了  ok

  2、该类数组对象的属性名必须为数值型或字符串型

如何使用其他的方法将一个对象转为数组 for in
for in 循环空对象或者数组 是不会报错的哈

     // 将对象变为数组
        let arrayLike = {
            bname: ‘ll‘,
            asa: ‘60‘,
            bb: ‘男‘
        }
        let newarr = [];
        for (let i in arrayLike) {
            newarr.push(arrayLike[i])
        }
        console.log(newarr); ["ll", "60", "男"]

es6 Array.form将类数组或者对象 转化为数组

原文:https://www.cnblogs.com/IwishIcould/p/12996692.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!