ES5 方法总结

1.slice

let arr = [2,4,434,43];
let arr1= arr.slice();
//let arr1 = arr.slice(0);
arr[0] = 'a';
console.log(arr,arr1); // [a,4,434,43] [ 2, 4, 434, 43 ]

2. 遍历数组

Array.prototype.clone = function(){
let a=[];
for(let i=0,l=this.length;i<l;i++) {
a.push(this[i]);
}
return a;
}
let arr = ['aaa','bbb','ccc','wwwww','ddd'];
arr[0] = 'a';
let arr2 = arr.clone();
console.log(arr,arr2);//['a','bbb','ccc','wwwww','ddd'] ['aaa','bbb','ccc','wwwww','ddd']

3. concat()

Array.prototype.clone=function(){
return [].concat(this);
//或者 return this.concat();
   //或者 return this.concat([]);
}
let arr = ['aaa','asss']
let arr1 = arr.clone()
arr[0] = 123
console.log(arr,arr1)//[123,'asss'] ['aaa','asss']

ES6 方法总结

1. Object.assign() 浅复制,也可以实现数组的克隆

let arr = ['sdsd',123,123,123]
let arr1 = []
Object.assign(arr1,arr)
arr[1] = 'aaaa'
console.log(arr,arr1) // [ 'sdsd', 'aaaa', 123, 123 ] [ 'sdsd', 123, 123, 123 ]

 2. 扩展运算符

const a1 = [1, 2];
const a2 = [...a1];
a1[0] = 'aaa'
console.log(a1,a2)// ['aaa',2]  [1,2]

最新文章

  1. 用 maven filter 管理不同环境的配置文件
  2. mapred-site.xml 配置在线更新
  3. Android课程---Activity 带返回值的跳转
  4. Linux ssh登录和软件安装详解
  5. MQ基础
  6. [hdu5113]Black And White2014北京赛区现场赛B题(搜索加剪枝)
  7. CoreJavaE10V1P3.10 第3章 Java的基本编程结构-3.10 数组(Arrays)
  8. Tomcat access log配置
  9. Django学习(一)
  10. SQA计划和验收测试规程设计
  11. Qt源码学习之信号槽
  12. 集训队日常训练20181201 C 1003 : 种类数
  13. idea 中dao层自动生成接口
  14. Future、Callable 、FutureTask详解
  15. Ability
  16. postman发送json格式的post请求
  17. POJ 1661 (Help Jimmy )
  18. 洛谷P1247 取火柴游戏
  19. HP-UX平台Oracle启动实例遭遇:ORA-27154,ORA-27300,ORA-27301,ORA-27302
  20. [UE4]制作视野图标

热门文章

  1. 12-cmake语法-内部变量-系统信息
  2. JS 中的 new 操作符
  3. SaaS加速器 III 技术中心:提供SaaS Launchkit,快速定制,一云多端等能力,一云多端将通过小程序云实现
  4. iOS硬解码获取宽高
  5. Biorhythms(信息学奥赛一本通 1639)
  6. 【医学】三分钟看懂乳腺BI-RADS分级
  7. 【IntelliJ IDEA学习之六】IntelliJ IDEA 调试
  8. ASP.NET Core WebApi构建API接口服务实战演练
  9. cad.net 图元延迟显示,动画效果,编辑器延迟发送提示.
  10. 实现简单的AOP前置后置增强