घोषणात्मक डेटा रूपांतरण
map, filter और reduce से डेटा बदलिए।
घोषणात्मक डेटा रूपांतरण, CoddyKit पर JavaScript Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह JavaScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। JavaScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
घोषणात्मक बनाम आदेशात्मक
आदेशात्मक कोड HOW बताता है (लूप, काउंटर और बदलाव)। घोषणात्मक कोड WHAT बताता है। map, filter और reduce जैसी सरणी विधियाँ आपको हाथ से लूप लिखे बिना रूपांतरणों का वर्णन करने देती हैं।
const nums = [1, 2, 3, 4];
const doubled = nums.map((n) => n * 2);
console.log(doubled); // [2, 4, 6, 8]map: हर तत्व का रूपांतरण
map समान लंबाई की नई सरणी लौटाता है, जिसमें हर तत्व आपके फ़ंक्शन द्वारा बदला जाता है। मूल सरणी में कोई बदलाव नहीं होता।
const names = ["ada", "bob"];
const upper = names.map((n) => n.toUpperCase());
console.log(upper); // ["ADA", "BOB"]
console.log(names); // unchangedfilter: कुछ तत्व रखना
filter ऐसी नई सरणी लौटाता है जिसमें केवल वे तत्व होते हैं जिनके लिए आपका प्रेडिकेट सत्य मान लौटाता है।
const nums = [1, 2, 3, 4, 5, 6];
const evens = nums.filter((n) => n % 2 === 0);
console.log(evens); // [2, 4, 6]reduce: एक मान में समेटना
reduce संचय करते हुए सरणी को एकल मान में समेटता है। एक रिड्यूसर और प्रारंभिक मान दें।
const nums = [1, 2, 3, 4];
const sum = nums.reduce((acc, n) => acc + n, 0);
console.log(sum); // 10क्रियाओं को जोड़ना
क्योंकि हर विधि नई सरणी लौटाती है, आप उन्हें एक पढ़ने योग्य पाइपलाइन में जोड़ सकते हैं, जिसे ऊपर से नीचे पढ़ा जा सकता है।
const nums = [1, 2, 3, 4, 5, 6];
const result = nums
.filter((n) => n % 2 === 0)
.map((n) => n * 10);
console.log(result); // [20, 40, 60]एक वास्तविक पाइपलाइन
एक ही अभिव्यक्ति में किसी डेटा-समूह से जुड़े प्रश्न का उत्तर देने के लिए filter, map और reduce को मिलाएँ।
const orders = [
{ item: "pen", price: 3, paid: true },
{ item: "ink", price: 8, paid: false },
{ item: "pad", price: 5, paid: true }
];
const paidTotal = orders
.filter((o) => o.paid)
.map((o) => o.price)
.reduce((a, p) => a + p, 0);
console.log(paidTotal); // 8नए रूपों में बदलना
map केवल संख्याओं का ही नहीं, ऑब्जेक्ट का रूप भी बदल सकता है। हर रिकॉर्ड को उन फ़ील्ड में बदलें जिनकी आपको आवश्यकता है।
const users = [{ id: 1, name: "Ada", age: 36 }];
const summary = users.map((u) => ({ id: u.id, label: u.name }));
console.log(summary); // [{ id: 1, label: "Ada" }]reduce से कुछ भी बनाया जा सकता है
reduce केवल योग के लिए नहीं है। इससे ऑब्जेक्ट बनाए जा सकते हैं, डेटा को समूहों में बाँटा जा सकता है या map और filter को फिर से बनाया जा सकता है।
const words = ["a", "bb", "a", "ccc"];
const counts = words.reduce((acc, w) => {
acc[w] = (acc[w] || 0) + 1;
return acc;
}, {});
console.log(counts); // { a: 2, bb: 1, ccc: 1 }क्रम महत्वपूर्ण है
map से पहले फ़िल्टर करने पर उन तत्वों को बदलने से बचते हैं जिन्हें बाद में हटा देना है। स्पष्टता और कार्यक्षमता के लिए श्रृंखला में कम लागत वाले फ़िल्टर पहले रखें।
const data = [1, 2, 3, 4, 5];
const out = data
.filter((n) => n > 2) // shrink first
.map((n) => n * n); // then transform
console.log(out); // [9, 16, 25]कहीं भी बदलाव नहीं
ये विधियाँ स्रोत सरणी को कभी नहीं बदलतीं। इससे पाइपलाइन सुरक्षित और अनुमानित रहती हैं और यह कार्यात्मक शैली के लिए पूरी तरह उपयुक्त है।
const src = [3, 1, 2];
const sorted = [...src].sort((a, b) => a - b);
console.log(sorted); // [1, 2, 3]
console.log(src); // [3, 1, 2] untouchedनेस्टेड परिणामों के लिए flatMap
जब map से सरणियाँ बनती हैं, तो flatMap एक ही चरण में map करता है और एक स्तर तक समतल करता है।
const pairs = [1, 2, 3].flatMap((n) => [n, n * 10]);
console.log(pairs); // [1, 10, 2, 20, 3, 30]त्वरित जाँच
घोषणात्मक रूपांतरण।
पुनरावलोकन
घोषणात्मक रूपांतरण HOW के बजाय WHAT का वर्णन करता है। map रूपांतरित करता है, filter चयन करता है और reduce एक मान में समेटता है; इन्हें पढ़ने योग्य पाइपलाइन में जोड़ें। इनमें से कोई भी स्रोत को नहीं बदलता, शुरुआत में फ़िल्टर करना कार्यक्षम होता है और reduce कोई भी संरचना बना सकता है। जब map से सरणियाँ मिलें, तब flatMap का उपयोग करें।
एआई शिक्षक के साथ JavaScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 59
- पाठ
- 200
अक्सर पूछे जाने वाले प्रश्न
क्या “घोषणात्मक डेटा रूपांतरण” पाठ निःशुल्क है?
हाँ — JavaScript Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “घोषणात्मक डेटा रूपांतरण” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। JavaScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“घोषणात्मक डेटा रूपांतरण” में मैं क्या सीखूँगा?
map, filter और reduce से डेटा बदलिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ JavaScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या JavaScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर JavaScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“घोषणात्मक डेटा रूपांतरण” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस JavaScript Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर JavaScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- शुद्ध फ़ंक्शन और साइड इफ़ेक्ट
- घोषणात्मक डेटा रूपांतरण
- म्यूटेशन से बचना
- पॉइंट-फ़्री शैली