मान लीजिए कि हमारे पास एक छात्र वस्तु है जिसमें दो गुण नाम और अंक हैं। नाम वस्तु की एक सरणी है जिसमें प्रत्येक वस्तु के दो गुण नाम और रोल होते हैं, इसी तरह अंक वस्तु की एक सरणी होती है जिसमें प्रत्येक वस्तु गुण चिह्न और रोल होती है। हमारा कार्य प्रत्येक वस्तु की उपयुक्त रोल संपत्ति के अनुसार चिह्नों और नामों के गुणों को संयोजित करना है।
विद्यार्थी वस्तु यहाँ दी गई है -
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);
इस कोड की समय जटिलता ओ (एमएन) है जहां एम और एन सरणी नाम और अंक के संबंधित आकार और इस ओ (1) की अंतरिक्ष जटिलता हैं। हालांकि, अंक सरणी के प्रत्येक तत्व के लिए एक नई संपत्ति बनाई जा रही है।
ये रहा पूरा कोड -
उदाहरण
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' } ] }