JS 数组克隆方法总结

本文深入探讨JavaScript中数组的多种操作方法,包括ES5的slice和concat,以及ES6的Object.assign和扩展运算符,实现数组的截取、连接和复制。通过代码示例展示不同方法的特点和使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ES5 方法总结

slice

/1.slice方法

1)  作用:从一个数组中截取出新的数组

2)  格式:数组名.slice(begin,end);

   begin表示开的下标

   end表示结束的下标,但是在截取时不包含结束下标对应的元素

3)  注意:

   原数组不受影响

   如果只设置一个参数,即begin,那么会从begin截取到最后

   如果不写参数,那么slice方法可以实现数组的复制 */

let arr = [2,4,434,43]	
let arr1= arr.slice()	
arr[0] = 'a'	
console.log(arr,arr1) // [ 2, 4, 434, 43 ]	
console.log(arr1 === arr) // false
遍历数组
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']	
let arr2 = arr.clone()	
console.log(arr2)	
console.log( arr2 === arr )
concat()

使用 concat() 用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本

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

ES6 方法总结

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 ]
扩展运算符
const a1 = [1, 2];	
	
const a2 = [...a1];	
a1[0] = 'aaa'	
console.log(a1,a2)

640?wx_fmt=jpeg


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值