किसी भी लेवल पर प्रॉपर्टीज़ को सुरक्षित रूप से सेट करने के लिए आप lodash के set मेथड का उपयोग कर सकते हैं। फर्स्ट-लेवल प्रॉपर्टीज़ सेट करना काफी सीधा है। नेस्टेड प्रॉपर्टी एक्सेस ट्रिकी है और इसके लिए आपको lodash जैसी टेस्टेड लाइब्रेरी का उपयोग करना चाहिए।
आप डीपली नेस्टेड ऑब्जेक्ट को निम्न तरीके से सेट कर सकते हैं:
उदाहरण
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' } } }
आप अपना खुद का setUpdateProp फ़ंक्शन निम्न तरीके से भी लिख सकते हैं:
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' } }