JavaScript 提供了很多克隆数组的方法,其中大多数在性能和结果方面都非常相似。以下就是这些方法的简要介绍。
ES6 引入了展开运算符(...),它可能是对数组进行浅拷贝的最简单和最常见的方法。
- let x = [1, 2, 3, 4];
- let y = [...x];
Array.from() 是一个非常强大的 API,可用来做许多不同的事,包括创建数组的副本。
- let x = [1, 2, 3, 4];
- let y = Array.from(x);
与展开运算符类似,Array.prototype.slice() 可用于对数组进行浅拷贝。
- let x = [1, 2, 3, 4];
- let y = x.slice();
这是一个非传统的方法,可以用 Array.prototype.map() 通过将数组的每个元素映射到自身,来创建新的数组。
- let x = [1, 2, 3, 4];
- let y = x.map(i => i);
同样也可以用 Array.prototype.filter() 返回每个元素的 true 值,从而产生一个包含所有原始数组元素的新数组。
- let x = [1, 2, 3, 4];
- let y = x.filter(() => true);
最后可以通过 Object.assign(),使用方式和克隆对象完全相同,同样适用于克隆数组。
- let x = [1, 2, 3, 4];
- let y = Object.assign([], x);
前言 语言的内存管理是语言设计的一个重要方面。它是决定语言性能的重要因素。无...
云计算服务正在以前所未有的速度在各行各业快速普及,成为IT应用的最主流实现形...
近期进展 在 ffmpeg-go init 之后,项目也收到了一些关注,还有几个同学发邮件探...
AnalyticDB for MySQL是云端托管的PB级高并发低延时数据仓库 通过AnalyticDB for...
本文转载自微信公众号「见贤思编程」,作者泰斗贤若如 。转载本文请联系见贤思编...
日前 阿里云云效联合阿里云大学团队 面向全国高校学子正式启动了83行代码重构大...
客户介绍 闲鱼是依托阿里电商体系的前台型业务,有非常独特的业务特点和用户诉求...
文本作者:刘晓国,Elastic 公司社区布道师。新加坡国立大学硕士,西北工业大学...
鉴于近期加密货币大涨,导致很多小(韭)白(菜)纷纷入场,然后很多人都在问显卡挖...
场景描述 最近使用 Redis 遇到了一个类似分布式锁的场景,跟 Redis 实现分布式锁...