数组的拷贝 不影响源数据

本文总结了JavaScript中实现数组拷贝并保持源数据不变的多种方法,包括Array.slice、Array.map、Array.from(注意去重问题)、扩展运算符、Array.of结合扩展运算符、Array.concat以及循环填充等。这些方法可以确保在处理拷贝后的数组时,不会改变原始数据。
摘要由CSDN通过智能技术生成

有时候需要把某些数组进行拷贝,在做功能性的处理,有时候需要浅拷贝,有时候需要深拷贝,

我常用的是需要保留源数据不被污染的,用到的最多的方法

var arr = [1,2,3,4,5,6];
var newArr = JSON.parse(JSON.stringify(arr));

是个万金油

在这总结一下能够进行数组拷贝,并且不污染源数据的方法

1、Array.slice

const number = [1, 2, 3, 4, 5];
        
const newNumber = number.slice();
        
newNumber.push(6);//添加新项证明不会改变原数组
        
console.log(number);//[1,2,3,4,5]
        
console.log(newNumber);//[1,2,3,4,5,6]

2、Array.map

const number = [1, 2, 3, 4, 5];
        
//map有返回值,声明变量接收返回值
const newNumber = number.map(num => num);
        
newNumber.push(6);//添加新项证明不会改变原数组
console.log(number);//[1,2,3,4,5]
        
console.log(newNumber);//[1,2,3,4,5,6]

3、Array.from (注意:该方法不能用在原数组里有重复项,会被去重)

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值