Lodash克隆数组与扩展运算符

问题描述 投票:0回答:2

我想知道是否有人知道点差运算符

cosnt newArray = [...oldArray];

使用lodash方法

const newArray = _.clone(oldArray);

过时?

或更重要的是,如果其中一种方法更有效?

**这是一个浅表克隆,只希望对象引用在新数组中。

谢谢!

javascript ecmascript-6 lodash clone
2个回答
0
投票

_.clone可以用于除数组之外的许多事物other

此方法大致基于结构化克隆算法,并支持克隆数组,数组缓冲区,布尔值,日期对象,映射,数字,对象对象,正则表达式,集合,字符串,符号和类型化数组。参数对象自己的可枚举属性被克隆为普通对象。返回一个空对象以获取不可克隆的值,例如错误对象,函数,DOM节点和WeakMaps。

相反,数组上下文中的传播语法仅对iterable对象(例如数组和某些具有Symbol.iterator属性的其他集合)起作用,并且仅产生纯数组。可以用_.clone调用许多东西来浅化克隆它们,而这些问题不能通过数组扩展来完成-例如普通对象。

((存在诸如对象传播之类的东西,可以浅层复制对象,但是语法是pretty新的)]

要考虑的另一件事是浏览器兼容性-传播语法需要ES6支持,而库方法_.clone的调用则不需要。


0
投票

clone似乎比扩展运算符:https://www.measurethat.net/Benchmarks/ShowResult/81691快。

但是,作为javascript in an expensive resource to process,添加一个库来完成Vanilla js可以完美完成的工作可能不是一个好主意。

© www.soinside.com 2019 - 2024. All rights reserved.