JS数组复制(克隆)
来源:互联网 发布:python 指数函数 编辑:程序博客网 时间:2024/04/30 02:47
JS数组复制
今天在实现js的数组操作时发现,JS的复杂数据类型都是使用内存地址的复制,来实现新对象的创建和赋值的。
所以改变新的对象会影响源对象的值,这在某些情况下不是我们所希望的结果。
例如
var a = [1,2,3];var b = a;b = [1,2]console.log(a); // [1,2]
所以在JS中想要创建一个新的数组,并对该数组进行操作时,不能简单的使用=进行赋值。
解决方法:
1、利用concat
array.concat()函数会连接两个数组,并创建一个新数组接受结果进行返回
var a = [1,2,3];var b = a.concat();b = [1,2];console.log(a); // [1,2,3]
2、利用slice
array.slice()函数会筛选原数组的一个子数组,创建一个新的数组接受结果后返回
var a = [1,2,3];var b = a.slice(0); // 省略第二个参数代表从start开始一直筛选到数组末尾var b = [1,2];console.log(a); // [1,2,3]
0 0
- JS数组复制(克隆)
- js数组排序 reverse()和sort()方法的使用 复制数组slice()和克隆数组concat()
- [转]js数组克隆
- js克隆一个数组
- js 数组克隆
- js对象克隆或复制
- JS 深复制对象 【克隆】
- JS学习30:对象简单、深度克隆(复制、Clone)
- Flex 复制(克隆)
- js克隆对象或数组
- 笔记17 数组的复制和克隆
- js深克隆与浅复制
- JS克隆数组和对象(不指向同一内存)
- java克隆 对象(复制)
- 浅复制(克隆)与深复制
- 克隆(浅复制与深复制)
- 复制和克隆数组,实现数组空间自动增长
- JS中复制数组
- 大数据, 海量数据算法
- solr 原子更新
- 在安装sublime之后,我为何毫不犹豫卸载了Dreamweaver?
- HashMap源码分析——JDK1.8
- 安卓Service服务
- JS数组复制(克隆)
- (转)The import javax.servlet.http.HttpServletRequest cannot be resolved
- 英文版的VC6.0,在 “Find in Files”中查找了中文引起崩溃
- tomcat 8.0 SQLSERVER 数据库连接池的创建方法
- 相机
- java 打包
- C++扬帆远航——9(小学生算数程序)
- Lucidpress | Free Design Tool(Web打印)
- c++继承与组合