ES6展开运算符的使用(展开、合并数组,拷贝(copy)数组和对象)

1 展开数组

let arr1 = [1,3,5,7]
console.log(...arr1);//1 3 5 7

2 合并数组

let arr1 = [1,3,5,7]
let arr2 = [2,4,6,12]
console.log(...arr1,...arr2,8,7);//1 3 5 7 2 4 6 12 8 7

3 在函数中使用(用于计算输入的所有数字的总和)

该方法适用于输入的参数数量不确定的情况。无需理会传入的参数有多少,只需要调用即可。

function sum(...numbers){
   return numbers.reduce((preValue,currentValue)=>{
      return preValue + currentValue;
     })
}
console.log(sum(2,8,1,5));//16

4 在构造字面量对象时使用 

4.1 实现对象的拷贝(copy)

let person ={name:'tom',age:26}
//拷贝(copy)       
let person1 = {...person}
console.log(person1);//{name: "tom", age: 26}

拷贝出来的person1是一个独立的对象,改变person对象的值不会影响到person1

let person ={name:'tom',age:26}
//拷贝(copy)       
let person1 = {...person}
console.log(person1);//{name: "tom", age: 26}

//修改person对象里面的name
person.name='jack';
console.log(person1);//{name: "tom", age: 26}
console.log(person);//{name: "jack", age: 26}

4.2 可以在克隆对象的同时添加新的key和value

let person ={name:'tom',age:26}
//克隆person  并添加telephone
let person3 = {...person,telephone:48756213457}
console.log(person3);//{name:'tom',age:26,telephone:48756213457}

注:展开运算符不可以展开对象。如下代码所示:

let person ={name:'tom',age:26}
console.log(...person);

       同时拷贝两个对象并拼接时,如果存在相同的属性,会产生覆盖,取后一个对象中的属性值,如name和age属性。 如下代码所示:

let person ={name:'tom',age:26,hobby: "游泳"}
let p1 = {name:'jerry',age:16,tel:12354254}

let person4 = {...person,...p1}
console.log(person4);//{name: 'jerry', age: 16, hobby: '游泳', tel: 12354254}

关于构造字面量对象时更多相关知识:展开语法 - JavaScript | MDN

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值