Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

स्ट्रिंग की के साथ नेस्टेड JavaScript ऑब्जेक्ट्स एक्सेस करना


किसी भी लेवल पर प्रॉपर्टीज़ को सुरक्षित रूप से प्राप्त करने के लिए आप 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"}}
  1. - JavaScript में नेस्टेड कलेक्शन फ़िल्टर

    मान लीजिए, हमारे पास नेस्टेड ऑब्जेक्ट्स का ऐसा ऐरे है:const arr = [{    id: 1,    legs:[{       carrierName:'Pegasus'    }] }, {    id: 2,    legs:[{       carrierName: 'SunExpress'    },  

  1. - जावास्क्रिप्ट में विभाजक वाली स्ट्रिंग को ऑब्जेक्ट्स की सरणी में बदलना

    मान लीजिए, हमारे पास एक स्ट्रिंग है जैसे -const str = Option 1|false|Option 2|false|Option 3|false|Option 4|true;हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो ऐसी एक स्ट्रिंग लेता है। फ़ंक्शन को | से स्ट्रिंग को विभाजित करके विकल्प और उसके मान को अलग करना चाहिए और इसे ऑब्जेक्ट्स की एक सरणी में बदलना चाह

  1. - जावास्क्रिप्ट में इसमें मौजूद संख्याओं के आधार पर स्ट्रिंग को मान्य करना

    समस्याहमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक स्ट्रिंग str लेता है। हमारा फ़ंक्शन स्ट्रिंग में वर्णमाला को उनसे पहले की संख्याओं के आधार पर मान्य करेगा। हमें स्ट्रिंग को संख्याओं से विभाजित करना होगा, और फिर संख्याओं की तुलना बाद के उपस्ट्रिंग में अक्षरों की संख्या से करनी होगी। यदि वे सभी मेल