[英]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.