आप किसी भी स्तर पर सुरक्षित रूप से गुण सेट करने के लिए लॉश की सेट विधि का उपयोग कर सकते हैं। प्रथम-स्तरीय गुण सेट करना बहुत सीधा है। नेस्टेड संपत्ति का उपयोग मुश्किल है और आपको इसके लिए लॉश जैसे परीक्षण किए गए पुस्तकालय का उपयोग करना चाहिए।
आप एक डीप नेस्टेड ऑब्जेक्ट को निम्न तरीके से सेट कर सकते हैं -
उदाहरण
let _ = require("lodash"); let obj = { a: { b: { foo: "test" }, c: 2 } }; _.set(obj, "a.b.foo", "test1"); _.set(obj, "a.c", { test2: "bar" }); console.log(obj);
आउटपुट
यह आउटपुट देगा -
{ a: { b: { foo: 'test1' }, c: { test2: 'bar' } } }
आप अपना खुद का सेटअपडेटप्रॉप फंक्शन निम्नलिखित तरीके से भी लिख सकते हैं -
const setUpdateProp = (object, path, value) => { if (path.length === 1) object[path[0]] = value; else if (path.length === 0) throw error; else { if (object[path[0]]) return setUpdateProp(object[path[0]], path.slice(1), value); else { object[path[0]] = {}; return setUpdateProp(object[path[0]], path.slice(1), value); } } };
आप प्रॉप्स को एक्सेस करने के लिए ऐरे पास करके इसका इस्तेमाल कर सकते हैं।
उदाहरण
var obj = { level1:{ level2:{ level3:{ name: "Foo" } }, anotherLevel2: "bar" } }; setUpdateProp(obj, ["level1", "level2"], "FooBar"); console.log(obj);
आउटपुट
यह आउटपुट देगा -
{ level1: { level2: 'FooBar', anotherLevel2: 'bar' } }