簡體   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