विभिन्न फंक्शन्स लिखते समय बहुत बार, हम कुछ डेटा के साथ काम करने के लिए रेंज बनाना चाह सकते हैं। एक रेंज एक शुरुआत और अंत मान के साथ एक सरणी या ऑब्जेक्ट में डेटा का प्रतिनिधित्व करती है।
बहुत सारी भाषाओं में रेंज बनाने के लिए बिल्ट-इन मेथड्स होते हैं, उदाहरण के लिए Ruby में to_a:
('a'..'e').to_a => ["a", "b", "c", "d", "e"]
JavaScript में इसके लिए कोई विशिष्ट बिल्ट-इन मेथड नहीं है, लेकिन रेंज बनाने के कई तरीके हैं। हम आपको तीन दिखाएंगे।
_.range() – Lodash
यदि हम संख्याओं की एक रेंज बनाना चाहते हैं और हम उन्हें जितनी जल्दी हो सके चाहते हैं तो हम Lodash _.range() यूटिलिटी मेथड का उपयोग कर सकते हैं।
यह मेथड एक सरणी लौटाता है और तीन आर्गुमेंट्स लेता है: रेंज की शुरुआत के लिए पहला, रेंज के अंत (तक) के लिए दूसरा, और स्टेप के लिए तीसरा, या वह मान जिससे बढ़ाया/घटाया जाता है।
_.range(-2); // => [0, -1] _.range(1, 3); // => [1, 2] _.range(1, 10, 4); // => [1, 5, 9]
ध्यान दें कि यदि केवल एक आर्गुमेंट प्रदान किया जाता है तो यह निर्दिष्ट संख्या तक एक रेंज बनाएगा। साथ ही, याद रखें कि Lodash एक JavaScript लाइब्रेरी है जिसे हमें अलग से इंस्टॉल करने की आवश्यकता है!
अपना खुद का range() फंक्शन बनाना
यदि हम कुछ ओवरहेड बचाना चाहते हैं, तो हम अपनी खुद की नंबर रेंज फंक्शन बना सकते हैं। पता चला है कि अपनी खुद की रेंज बनाना बहुत आसान है।
function range(start, end, step = 1){
if(start === end) return [start];
const range = [];
for(let i = start; i <= end; i += step){
range.push(i);
}
return range;
}
range(1, 10, 4) // => [1, 5, 9]
range(1, 10) // => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
यह लिखना आसान है और हम केवल एक फंक्शन के लिए Lodash जैसी लाइब्रेरी इम्पोर्ट करने से बच सकते हैं!
नॉन-नंबर रेंज फंक्शन बनाना
अब आप पूछ रहे होंगे, नॉन-नंबर रेंज के बारे में क्या, जैसे कैरेक्टर्स? JavaScript के साथ इसे लागू करने के लिए हमारे पास कुछ विकल्प हैं।
यहां हम charCodeAt() मेथड का उपयोग एक नंबर प्राप्त करने के लिए करेंगे जिसे हम तब बढ़ाएंगे और फिर String.fromCharCode() का उपयोग करके एक सरणी में पुश करेंगे, जो कैरेक्टर कोड से एक कैरेक्टर लौटाता है।
function charRange(start, stop) {
const range = [];
const end = stop.charCodeAt(0);
for (let i = start.charCodeAt(0); i <= end; i++){
range.push(String.fromCharCode(i));
}
return range;
}
charRange('A','F') // => ['A', 'B', 'C', 'D', 'E', 'F']
यह आपके विचार से आसान था, है ना?
निष्कर्ष
अब आप जानते हैं कि JavaScript के साथ रेंज बनाना कितना आसान हो सकता है। कृपया सुनिश्चित करें कि आप इन उपयोगी फंक्शन्स को सेव करते हैं, हमें यकीन है कि वे किसी बिंदु पर काम आएंगे!