当前位置: 首页 > news >正文

JS数组复制方法及注意事项

在 JavaScript 中,直接赋值数组会导致引用传递(修改一个会影响另一个),因此需要创建数组的副本。以下是几种常见的浅拷贝方法:

1. 使用 slice() 方法

javascript

const originalArray = [1, 2, 3];
const copiedArray = originalArray.slice();

2. 使用 concat() 方法

javascript

const originalArray = [1, 2, 3];
const copiedArray = originalArray.concat();

3. 使用展开运算符(ES6+)

javascript

const originalArray = [1, 2, 3];
const copiedArray = [...originalArray];

4. 使用 Array.from()(ES6+)

javascript

const originalArray = [1, 2, 3];
const copiedArray = Array.from(originalArray);

注意事项:

  • 浅拷贝:上述方法均为浅拷贝,适用于元素是基本类型的数组。
    如果元素是对象或嵌套数组,修改内层内容仍会互相影响:

    javascript

    const original = [{ a: 1 }, [2]];
    const copied = [...original];
    copied[0].a = 999; // 原数组的 `{ a: 1 }` 也会被修改!
  • 深拷贝:若需要完全独立的副本(深拷贝),可以通过 JSON 方法实现(但有局限性,如无法处理函数、undefined 等):

    javascript

    const original = [{ a: 1 }, [2]];
    const deepCopied = JSON.parse(JSON.stringify(original));

相关文章:

  • 网站开发需要什么专业营销是做什么
  • 如何做网页或网站推广效果最好的平台
  • 大良商城网站建设百度知道app官方下载
  • wordpress 评论邮件通知seo诊断
  • 盛泽做网站免费网站推广软件哪个好
  • 南京专业做网站公司网络营销总结及体会
  • [BJDCTF2020]Mark loves cat [git泄露][变量覆盖漏洞]
  • Java单列集合[Collection]
  • 【Vue3知识】Vue3集成富文本编辑器TinyMCE
  • Croe 11.0建模入门笔记:1.2 快捷键
  • C++的四种类型转换
  • 走进 detect.tflite:树莓派目标检测背后的核心模型详解
  • rust学习笔记21-闭包
  • 多人协同进行qt应用程序开发应该注意什么2?
  • H5S USC 宇视LiteAPI协议支持
  • C#从入门到精通(4)
  • CPU飙高系统反应慢怎么排查?
  • AI赋能职教革新:生成式人工智能(GAI)认证重构技能人才培养新范式
  • 告别枯燥工作,走向自动化
  • 人形机器人行业研究
  • 1304-习题1_4-课后习题-高等数学
  • Cesium知识总结(一)
  • 洛谷P3128 [USACO15DEC] Max Flow P
  • RUST学习笔记1:Rust开发环境搭建(Winodws11 x64)
  • QSettings用法实战(相机配置文件的写入和读取)
  • 第三届全国技能大赛广西选拔赛 《软件测试》项目样题