কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে ইউনিক ফিল্ড দিয়ে অবজেক্ট প্রপার্টি মার্জ করা

मान लीजिए हमारे पास एक students ऑब्जेक्ट है जिसमें दो प्रॉपर्टीज़ names और marks हैं। names ऑब्जेक्ट्स का एक ऐरे है जिसमें प्रत्येक ऑब्जेक्ट में दो प्रॉपर्टीज़ name और roll हैं, इसी तरह marks ऑब्जेक्ट्स का एक ऐरे है जिसमें प्रत्येक ऑब्जेक्ट में प्रॉपर्टीज़ mark और roll हैं। हमारा काम प्रत्येक ऑब्जेक्ट के उपयुक्त roll प्रॉपर्टी के अनुसार marks और names प्रॉपर्टीज़ को संयोजित करना है।

students ऑब्जेक्ट यहां दिया गया है -

const students = {    marks: [{       roll: 123,       mark: 89    }, {       roll: 143,       mark: 69    }, {       roll: 126,       mark: 91    }, {       roll: 112,       mark: 80    }], names: [{    name: 'Aashish',    roll: 126 }, {    name: 'Sourav',    roll: 112 }, {    name: 'Vineet',    roll: 143 }, {    name: 'Kartik',    roll: 123 }] }

आइए एक फ़ंक्शन combineProperties परिभाषित करें जो students ऑब्जेक्ट को लेता है और प्रॉपर्टीज़ को इन-प्लेस में जोड़ता है यानी बिना किसी अतिरिक्त स्पेस का उपयोग किए -

const combineProperties = (students) => {    const { marks, names } = students;    marks.forEach(marksObj => {       const { roll } = marksObj;       marksObj.name = names.find(namesObj => namesObj.roll ===roll).name;    })    delete students['names']; }; combineProperties(students); console.log(students);

इस कोड की समय जटिलता O(mn) है जहां m और n क्रमशः names और marks ऐरे के आकार हैं और स्पेस जटिलता O(1) है। हालांकि, marks ऐरे के प्रत्येक तत्व के लिए एक नई प्रॉपर्टी बनाई जा रही है।

यहां पूरा कोड है -

उदाहरण

const students = {    marks: [{       roll: 123,       mark: 89    }, {       roll: 143,       mark: 69    }, {       roll: 126,       mark: 91    }, {       roll: 112,       mark: 80    }],    names: [{       name: 'Aashish',       roll: 126    }, {       name: 'Sourav',       roll: 112    }, {       name: 'Vineet',       roll: 143    }, {       name: 'Kartik',       roll: 123    }] } const combineProperties = (students) => {    const { marks, names } = students;    marks.forEach(marksObj => {       const { roll } = marksObj;       marksObj.name = names.find(namesObj => namesObj.roll ===roll).name;    })    delete students['names']; }; combineProperties(students); console.log(students);

आउटपुट

कंसोल आउटपुट होगा -

{    marks: [       { roll: 123, mark: 89, name: 'Kartik' },{ roll: 143, mark: 69, name: 'Vineet' },       { roll: 126, mark: 91, name: 'Aashish' },{ roll: 112, mark: 80, name: 'Sourav' }    ] }
  1. জাভাস্ক্রিপ্টে অবজেক্ট প্রোপার্টি ডিলিট করা

  2. জাভাস্ক্রিপ্টে অবজেক্ট অ্যারে প্রোপার্টির দৈর্ঘ্য অনুযায়ী সোর্ট করা

  3. জাভাস্ক্রিপ্টে অন্য অবজেক্ট দিয়ে অবজেক্ট অ্যাক্সেস করা

  4. জাভাস্ক্রিপ্টে প্রতিটি অবজেক্টের জন্য ইউনিক আইডি তৈরি করা