数组的展开合并

现在有两个数组[1, 2, 3, 4]和[5, 6, 7],想要将两个函数拼接成一个新的函数。

//es5的写法
let arr1 = [1, 2, 3, 4];
let arr2 = [5, 6, 7];
let arr = arr1.concat(arr2);
console.log(arr)//[ 1, 2, 3, 4, 5, 6, 7 ]
//es6的写法
let arr = [...arr1, ...arr2];
console.log(arr)//[ 1, 2, 3, 4, 5, 6, 7 ]

对象的展开合并

现在有两个对象,一个是{name:'sam'}一个是{age:8} 想要将两个对象合并。

//es5 中的合并
let obj1 = { name: '张三' }
let obj2 = { age: 9 };
let obj = {}
Object.assign(obj, obj1, obj2)
console.log(obj)//{ name: '张三', age: 9 }
//es6 中的合并
let obj1 = { name: '张三' }
let obj2 = { age: 9 };
let obj = { ...obj1, ...obj2 }
console.log(obj)//{ name: '张三', age: 9 }

展开运算符是浅拷贝

浅拷贝的值在改变原来对象内容的时候也会影响新的对象值的变化。

let  obj1  = { name:  {name:'张三'} }
let obj2 = { age: 9 };
let obj = { ...obj1, ...obj2 }
obj1.name.name='李硕';
console.log(obj)//{ name: { name: '李硕' }, age: 9 }

如果要想查看实现深拷贝的方法,请移步我的另一篇随笔:https://www.cnblogs.com/hanqingtao/p/9915886.html

最新文章

  1. IOS第13天(1,私人通讯录,登陆功能,界面的跳转传值,自定义cell,编辑界面)
  2. openpgp和gnupg
  3. [改善Java代码]不要让类型默默转换
  4. DBMS_SCHEDULER and DBMS_JOB
  5. 微信开发第4章 通过accesstoken获取用户标签管理
  6. InstallShield 创建自己的Dialog
  7. TCP header
  8. PAT (Advanced Level) 1105. Spiral Matrix (25)
  9. index.js:13 Uncaught TypeError: Cannot read property 'split' of undefined
  10. 如何在Shell中快速切换目录
  11. 麻省理工18年春软件构造课程阅读02“Java基础”
  12. java 需要准备的知识(转摘)
  13. ubuntu批量更改文件权限
  14. ajax入门基础
  15. Kali linux Nessus &Cracking Password
  16. tf.transpose()的用法
  17. .NET Core开发日志——结构化日志
  18. js 操作dom
  19. Android之循环显示图像的Android Gallery组件
  20. @Dataprovider 和 @Factory 的使用

热门文章

  1. Jmeter_Beanshell_使用Java处理JSON块(转)
  2. python大战机器学习——集成学习
  3. 028 Implement strStr() 实现 strStr()
  4. poj3233(矩阵快速幂的和)
  5. leetcode--Learn one iterative inorder traversal, apply it to multiple tree questions (Java Solution)
  6. opencv——IplImage结构
  7. Visual Studio 使用
  8. <Linux系统uname命令用法>
  9. AngularJS(十):依赖注入
  10. Linux系统 Centos7/Centos6.8 yum命令在线安装 MySQL5.6