数组深克隆比较灵巧的几种方式

简介:

数组深克隆比较灵巧的几种方式

  1. 扩展运算符
    扩展运算符可以将数组转换为一个用逗号分隔的参数序列;

由此延伸的克隆方式;

let arr =  [...[1, 2, 3]];
  1. concat()
    数组的连接返回被连接后数组的一个副本;

通过这种方式也可以进行克隆;

 let arr = [1, 2, 3].concat();
  1. slice()
    slice可以从已有的数组中返回选定的元素;

并且在不改变原数组的情况下返回一个新的数组;
那么在不删除任何元素的情况下返回的不就是和原数组一样的新数组么;

let arr = [1, 2, 3].slice();

如果数组内的值是对象的情况下;以上所有方式全部报废;这个时候就需要换个思路

  1. 转换为json字符串

    let arr = JSON.parse(JSON.stringify([a: 1]));
相关文章
|
26天前
|
存储 索引 Python
什么是数组,什么是对象,并说出他们的区别
什么是数组,什么是对象,并说出他们的区别
15 6
|
2月前
|
设计模式 算法 测试技术
【C/C++ 编程 哑对象】了解和学习哑对象在C/C++ 编程中的使用
【C/C++ 编程 哑对象】了解和学习哑对象在C/C++ 编程中的使用
44 2
|
2月前
|
Java 程序员
揭秘编程世界的构造块:一文教你理解方法的本质与运用
揭秘编程世界的构造块:一文教你理解方法的本质与运用
8 0
|
9月前
|
设计模式 Java API
一文读懂深克隆与浅克隆的关系
在Java提供的API中,不需要手动创建抽象原型接口,因为Java已经内置了Cloneable抽象原型接口,自定义的类型只需实现该接口并重写Object.clone()方法即可完成本类的复制。 通过查看JDK的源码可以发现,其实Cloneable是一个空接口。Java之所以提供Cloneable接口,只是为了在运行时通知Java虚拟机可以安全地在该类上使用clone()方法。而如果该类没有实现 Cloneable接口,则调用clone()方法会抛出 CloneNotSupportedException异常。 一般情况下,如果使用clone()方法,则需满足以下条件。
38 0
|
10月前
|
索引 Python 容器
继续打脸水货教程:关于可变对象与不可变对象
前阵子我们聊了下Python中有关函数参数传递以及变量赋值的一些内容:Python到底是引用传递还是值传递?网上大多数教程都讲错了
歪理解?原型链中的函数和对象
最近在看高程4,原型链肯定是绕不过的,本瓜之前一直认为,只要记住这句话就可以了: 一个对象的隐式原型(__proto__)等于构造这个对象的构造函数的显式原型(prototype)
|
Java Scala 开发者
特质构造的顺序|学习笔记
快速学习特质构造的顺序。
49 0
|
编译器 C++
<C++>一篇文章搞懂类和对象中常函数和常对象的实质以及避免空指针访问的小妙招
<C++>一篇文章搞懂类和对象中常函数和常对象的实质以及避免空指针访问的小妙招
105 0
|
JavaScript 前端开发
你知道深浅拷贝分别有哪些方式吗?
何为深浅拷贝 - 浅拷贝:拷贝基本数据类型时,不受任何影响,当拷贝引用类型时,源对象也会被修改。 - 深拷贝:深拷贝就是完完全全拷贝一份新的对象,它会在内存的堆区域重新开辟空间,修改拷贝对象就不会影响到源对象
128 0
少年郎,你为什么没有对象?是缺点“土味情话”
少年郎,你为什么没有对象?是缺点“土味情话”
少年郎,你为什么没有对象?是缺点“土味情话”