JS 数组克隆方法总结(不可更改原数组)
2024-09-04 21:27:55
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]
最新文章
- 用 maven filter 管理不同环境的配置文件
- mapred-site.xml 配置在线更新
- Android课程---Activity 带返回值的跳转
- Linux ssh登录和软件安装详解
- MQ基础
- [hdu5113]Black And White2014北京赛区现场赛B题(搜索加剪枝)
- CoreJavaE10V1P3.10 第3章 Java的基本编程结构-3.10 数组(Arrays)
- Tomcat access log配置
- Django学习(一)
- SQA计划和验收测试规程设计
- Qt源码学习之信号槽
- 集训队日常训练20181201 C 1003 : 种类数
- idea 中dao层自动生成接口
- Future、Callable 、FutureTask详解
- Ability
- postman发送json格式的post请求
- POJ 1661 (Help Jimmy )
- 洛谷P1247 取火柴游戏
- HP-UX平台Oracle启动实例遭遇:ORA-27154,ORA-27300,ORA-27301,ORA-27302
- [UE4]制作视野图标
热门文章
- 12-cmake语法-内部变量-系统信息
- JS 中的 new 操作符
- SaaS加速器 III 技术中心:提供SaaS Launchkit,快速定制,一云多端等能力,一云多端将通过小程序云实现
- iOS硬解码获取宽高
- Biorhythms(信息学奥赛一本通 1639)
- 【医学】三分钟看懂乳腺BI-RADS分级
- 【IntelliJ IDEA学习之六】IntelliJ IDEA 调试
- ASP.NET Core WebApi构建API接口服务实战演练
- cad.net 图元延迟显示,动画效果,编辑器延迟发送提示.
- 实现简单的AOP前置后置增强