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