[英]How to replace Lodash's get and set to get and set properties in highly complex objects
我正在使用lodash
的get
和set
来操作复杂的对象。 尽管 Lodash 是一个很好的库,但它的重量也很大(大约 40kb)。 我正在尝试开发一个精简的网络应用程序,而 lodash 占用了包大小的一半。
您将如何构建可以替代get
和set
的安全函数?
例如,某些 function 将更改以下 object:
放
const a = {b:2,c:{d:5}}
set(a,"cd",7)
这将导致
//a = {b:2,c:{d:7}}
.
如果 a = {},它将导致:
{c:{d:7}}
得到
const a = {b:2,c:{d:5}}
let x = get(a,"cd",0)
这将导致
//x = 5
或者如果路径不存在, //x = 0
您可以在 JavaScript 中构建递归 function 来做到这一点。
设置数据:
const obj = {b:7,c:{d:{f:8}}}; const set = (string, obj, value) => { const [current,...rest] = string.split("."); rest.length >= 1? set(rest.join("."), obj[current] = obj[current] || {}, value): obj[current]= value; return obj; }; console.log(set("cdf", obj, 10));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.