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