ES6 —— 数组

1)数组创建

(1)Array.of():将参数中所有值作为元素形成数组。

        var arr = Array.of(1,2,"xiaozhang",true)
        console.log(arr);

 (2)Array.from():将类数组对象或可迭代对象转化为数组。

        var arr = [1,2,3]
        var arr2 = Array.from(arr)
        console.log(arr2)

        let arr = Array.from({
            0: '1',
            1: '2',
            2: 3,
            length: 3
        });
        console.log(arr);

 

        var s1 = new Set([10, 20, 30])
        var arr = Array.from(s1, function (el) {
            console.log(el);
            return el
        })
        console.log(arr);

 2)类数组对象

  一个类数组对象必须含有 length 属性,且元素属性名必须是数值或者可转换为数值的字符。

        var re = {
            0:10,
            1:20,
            2:30,
            length:3
        }
        var arr = Array.from(re)
        console.log(arr);

 

1) 如果类数组中没有 length 属性,则返回空数组

         var re = {
            0:10,
            1:20,
            2:30,
        }
        var arr = Array.from(re)
        console.log(arr);

 2)如果元素属性名不为数值且无法转换为数值,返回长度为 length 元素值为 undefined 的数组

        var re = {
            a:10,
            blur:20,
            c:30,
            length:3
        }
        var arr = Array.from(re)
        console.log(arr);

3)扩展的方法

(一)查找:

(1)find():        查找数组中符合条件的元素,若有多个符合条件的元素,则返回第一个元素。

        var arr = Array.of(1,2,44,5,6,22,97)
        var re = arr.find(function(el) {
            if (el > 20) {
                return true
            }
        })
        console.log(re);

 

(2) findIndex():查找数组中符合条件的元素索引,若有多个符合条件的元素,则返回第一个元素索引。

        var arr = Array.of(1,2,44,5,6,22,97)
        var re = arr.findIndex(function(el) {
            if (el > 20) {
                return true
            }
        })
        console.log(re);

 (二)填充:

        fill():将一定范围索引的数组元素内容填充为单个指定的值。并且会改变原数组。

        var arr = [1,2,45,346,67,434,3]
        var arr2 = arr.fill("*",2,5)
        console.log(arr2);

 (三)遍历:

(1)entries(): 遍历键值对。

        var arr = ["aa","33","xiaozhang"]
        var re = arr.entries()
        for (const [key,value] of re) {
            console.log(key,value);
        }
        

 

(2)keys():遍历键名。

        var arr = ["aa","33","xiaozhang"]
        var re = arr.keys()
        for (const key of re) {
            console.log(key);
        }

 

 (3)values():遍历键值

        var arr = ["aa","33","xiaozhang"]
        var re = arr.values()
        for (const value of re) {
            console.log(value);
        }

(四) 包含:

        includes():数组是否包含指定值。注意:与 Set 和 Map 的 has 方法区分;Set 的 has 方法用于查找值;Map 的 has 方法用于查找键名。

        var arr = ["aa",33,"xiaozhang"]
        var re = arr.includes(33)
        console.log(re);

(五)嵌套数组转一维数组:  flat(),参数为指定嵌套的层数

        var arr = [[10,20,30,40],40,50,[[60,70],80,[90,100]]]
        var arr2 = arr.flat(2)
        console.log(arr2);

 如果flat()参数为Infinity,则不管嵌套多少层,全部转为一维数组

        var arr = [[10,[20,30],40],40,[50],[[60,70],80,[90,100]]]
        var arr2 = arr.flat(Infinity)
        console.log(arr2);

3)扩展运算符(...)

(1)复制数组

        var arr = [1,2,3,4]
        var arr2 = [...arr]
        console.log(arr2);

 

(2)合并数组

        var arr = [1,2,3,4]
        var arr2 = [3,4,5,6]
        var arr3 = [...arr,...arr2]
        console.log(arr3);

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

z_小张同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值