拆散数组和...

6.5.3展开运算符spread

【1】原因:数组的拆散之前学习过apply函数,但是apply函数不那么好用,因为apply的本职工作不是拆散数组,而是替换this,是在替换this的同时拆散的数组

【2】解决:如果希望单纯的拆散数组,就使用 … 展开运算符

【3】如何使用:在调用函数时,函数名(...数组名);

【4】原理:…先将数组拆散成多个实参值,再依次分别传给函数的每个形参变量。

【5】…的作用:

​ i:定义函数时,形参列表中的…表示收集

​ ii:调用函数时,实参列表中的…表示拆散

【6】示例

        var arr=[1,5,34,8];
        // 找到数组中的最大值
        console.log(Math.max(1,5,34,8));
        // 错误的结果
        console.log(Math.max(arr));
        // 使用apply函数打散数组,因为其中与this指向没有任何关系,所以第一个参数随便写啥都行
        console.log(Math.max.apply("",arr));
        console.log(Math.max.apply(null,arr));
        console.log(Math.max.apply(arr,arr));
        console.log(Math.max.apply(Array,arr));

        // 正确做法:   使用展开运算符...将数组拆散
        console.log(Math.max(...arr));

【7】语法糖

语法糖的含义:一些简写,可以简化代码

​ i:复制一个数组: var arr2=[…arr1];

​ ii:合并多个数组和元素:

 var arr3=[...arr1, 元素2, ...arr2, 元素3]

​ iii:克隆一个对象: var obj2={…obj1};

​ iv:合并多个对象和属性:

var obj3={ 

​ …obj1, 属性名:属性值, …obj2, 属性名:属性值

​ }

示例:

  // 语法糖
        var arr1=[1,1,2];
        // 复制一个数组
        var arr2=[...arr1];
        // 合并多个数组和元素
        var arr3=[1,...arr2,7,...arr1];
        var obj={x:1,y:3};
        // 克隆一个对象
        var obj1={...obj};
        // 合并多个对象和属性
        var obj2={...obj,i:5,...arr1}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值