在前端开发中,我们经常需要使用到一些工具箱或者工具库于日常开发工作中。其中最为常见的就是 lodash
工具库。其中一个比较有用的函数 lodash.setwith
可以简化我们对于对象内容的修改。
lodash.setwith 简介
lodash.setwith
函数是 Lodash 提供的对象属性设置方法,它的作用就是根据传入的路径设置目标对象的对应属性值,并返回目标对象本身。其参数有三个:目标对象、要设置的路径和想要设置的值。
安装
命令行进入项目根目录,使用 npm 安装 Lodash:
npm install lodash
使用
基本用法
以对 obj
对象中嵌套的 a
对象进行更新操作举例:
let _ = require('lodash'); let obj = {a: {b: 3}}; _.setWith(obj, 'a.b', 4, Object); // => {a: {b: 4}};
这里我们传递的参数分别为:
obj
:目标对象'a.b'
:需要更新的路径4
:更新后的值Object
:用作自定义对象创建的构造函数
自定义创建对象方法
我们还可以根据需要传递自定义的对象属性创建方法,以便在创建对象时更加灵活:
let _ = require('lodash'); let obj = {a: {}}; _.setWith(obj, 'a[0].b', 4, Object); // => {a: [{b: 4}]}
这里我们传递的参数分别为:
obj
:目标对象'a[0].b'
:需要更新的路径4
:更新后的值Object
:用作自定义对象创建的构造函数
自定义属性合并方法
当目标对象存在相应的属性时,我们还可以进行更复杂的合并操作:
let _ = require('lodash'); let obj = {a: {b: 3}}; _.setWith(obj, 'a.b', 4, (newValue, oldValue) => { return oldValue + 1; }); // => {a: {b: 4}}
这里我们传递的 setter
函数用于为新值提供一个自定义的合并操作。
总结
最后,Lodash 的 lodash.setwith
函数可以让我们针对需要修改的对象和路径进行灵活的修改和操作,而且还可以根据需要传入自定义的属性合并和对象创建方法。
它的说明文档详尽,使用方法也相对灵活,可以广泛应用于平时开发工作中。希望在使用过程中能够对大家有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/58663