繁体   English   中英

如何替换 Lodash 的 get 和 set 以在高度复杂的对象中获取和设置属性

[英]How to replace Lodash's get and set to get and set properties in highly complex objects

我正在使用lodashgetset来操作复杂的对象。 尽管 Lodash 是一个很好的库,但它的重量也很大(大约 40kb)。 我正在尝试开发一个精简的网络应用程序,而 lodash 占用了包大小的一半。

您将如何构建可以替代getset的安全函数?

例如,某些 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM