Javascript中使用Lodash工具库的cloneDeep函数实现深拷贝

2020-04-14 21:47:08 浏览数 (1)

前言

最近在看Vue_shop实战项目-电商管理系统(Element-UI)的B站视频,看到 P172 08.商品添加-把goods_cat从数组转换为字符串时,讲到了Lodash这个工具库的cloneDeep方法的使用。 Lodash是一个一致性、模块化、高性能的 JavaScript 实用工具库,其官网地址为:https://www.lodashjs.com/,Github托管地址为:https://github.com/lodash/lodash

Loadsh的使用介绍

下载loadsh

  • 核心版 (~4kB gzipped)
  • 完整版 (~24kB gzipped) CDN 加速 Lodash 遵循 MIT 开源协议发布,并且支持最新的运行环境。 查看各个构件版本的区别并选择一个适合你的版本。

安装

  • 浏览器环境:
代码语言:javascript复制
<script src="lodash.js"></script>
  • 通过 npm:
代码语言:javascript复制
$ npm i -g npm
$ npm i --save lodash
  • Node.js:
代码语言:javascript复制
// Load the full build.
var _ = require('lodash');
// Load the core build.
var _ = require('lodash/core');
// Load the FP build for immutable auto-curried iteratee-first data-last methods.
var fp = require('lodash/fp');
 
// Load method categories.
var array = require('lodash/array');
var object = require('lodash/fp/object');
 
// Cherry-pick methods for smaller browserify/rollup/webpack bundles.
var at = require('lodash/at');
var curryN = require('lodash/fp/curryN');
  • 注意: 如需在 Node.js < 6 的 REPL 环境中使用 Lodash,请安装 n_。

为什么选择 Lodash ?

Lodash 通过降低 array、number、objects、string 等等的使用难度从而让 JavaScript 变得更简单。 Lodash 的模块化方法 非常适用于:

  • 1、遍历 array、object 和 string
  • 2.、对值进行操作和检测
  • 3、创建符合功能的函数

模块格式

Lodash 提供 多种构建方式 和模块格式。

lodash & per method packages lodash-es, babel-plugin-lodash, & lodash-webpack-plugin lodash/fp lodash-amd

补充工具

futil-js 是一套用来补足 lodash 的实用工具集。

扩展阅读

贡献 版本说明 Wiki(更新记录、路线图等)

兼容性

在 Chrome 74-75、Firefox 66-67、IE 11、Edge 18、Safari 11-12 和 Node.js 8-12 环境中测试通过。

loadsh中的cloneDeep方法使用

cloneDeep方法介绍

代码语言:javascript复制
_.cloneDeep(value)

这个方法类似_.clone,除了它会递归拷贝 value。(注:也叫深拷贝)。 添加版本 1.0.0

参数 value (): 要深拷贝的值。 返回 (): 返回拷贝后的值。 例子如下:

代码语言:javascript复制
var objects = [{ 'a': 1 }, { 'b': 2 }];
 
var deep = _.cloneDeep(objects);
console.log(deep[0] === objects[0]);
// => false

0 人点赞