JavaScript में ऐरे एक सूची जैसी संरचना होती है, जिसकी लंबाई तय नहीं होती और जिसमें किसी भी तरह के प्रिमिटिव या ऑब्जेक्ट रखे जा सकते हैं, मिले-जुले टाइप के भी।
इसमें length प्रॉपर्टी होती है, और ऐरे पर चलने तथा उसमें बदलाव करने के लिए बहुत सारे काम के मेथड भी मिलते हैं।
ऐरे बनाने के लिए चौकोर ब्रैकेट [] के बीच एलिमेंट लिखिए।
ऐरे से कोई वैल्यू पढ़ने के लिए आइडेंटिफायर के बाद चौकोर ब्रैकेट [] में इंडेक्स लिखिए। ऐरे के इंडेक्स शून्य से शुरू होते हैं।
उदाहरण के लिए:
const names = ['Jack', 'Laura', 'Paul', 'Megan'];
names[1];
// => Laura
ऐरे कंस्ट्रक्टर सिंटैक्स से भी बनाए जा सकते हैं, लेकिन ज़्यादातर जगहों पर ऐरे लिटरल सिंटैक्स इस्तेमाल करना बेहतर है।
const names = new Array();
names.push('Jack', 'Laura', 'Paul', 'Megan');
names[1];
// => Laura
ऐरे में एलिमेंट के इंडेक्स के रूप में strings का उपयोग नहीं किया जा सकता, वहाँ पूर्णांक (number) ही लगते हैं।
ब्रैकेट नोटेशन (या डॉट नोटेशन) से गैर-पूर्णांक के ज़रिए सेट या एक्सेस करने पर ऐरे की सूची में कोई एलिमेंट सेट या निकाला नहीं जाता, बल्कि उस ऐरे के ऑब्जेक्ट प्रॉपर्टी संग्रह से जुड़ा कोई वेरिएबल सेट या एक्सेस होता है।
ऐरे की ऑब्जेक्ट प्रॉपर्टी और ऐरे के एलिमेंट की सूची अलग-अलग चीज़ें हैं। ऐरे पर चलने या उसमें बदलाव करने वाले ऑपरेशन इन नाम वाली प्रॉपर्टी पर लागू नहीं होते।
const names = ['Jack', 'Laura', 'Paul', 'Megan'];
names.length;
// => 4
// Properties can be set on arrays using bracket ['property'] or
// dot .property notation, and this will affect the length, as
// shown below.
names.magician = 'Elyse';
names.length;
// => 4
// The property shows up when logging the array, making it seem
// that the property is somehow incorporated in the array.
names;
// => ["Jack", "Laura", "Paul", "Megan", magician: "Elyse"]
// However, be aware. Properties added via non-numeric keys are
// NOT part of the array's internal list, and are not traversed
// or mutated when using one of the traversal or mutation
// operations.
names.forEach((name) => console.log(name));
// => Jack
// => Laura
// => Paul
// => Megan
JavaScript में ऐरे सामान्य objects होते हैं, और delete कीवर्ड से आइटम हटाए जा सकते हैं।
लेकिन इससे ऐरे की लंबाई नहीं बदलती, और empty के रूप में एक खाली जगह बनी रह जाती है।
दूसरी भाषाओं में यह स्पार्स ऐरे जैसा होता है।
चलने या बदलाव करने वाले ऑपरेशन में ये empty वाली खाली जगहें छोड़ दी जाती हैं।
const names = ['Jack', 'Laura', 'Paul', 'Megan'];
delete names[1];
names;
// => ["Jack", empty, "Paul", "Megan"]
names.length;
// => 4
names.forEach((name) => console.log(name));
// => Jack
// => Paul
// => Megan
अगर कोई खाली जगह नहीं छोड़नी हो, और length में उन आइटम की संख्या दिखनी चाहिए जिन पर चला या बदलाव किया जाएगा, तो इसके बजाय splice का उपयोग कीजिए।
splice() मेथड किसी ऐरे के मौजूदा एलिमेंट हटाकर या बदलकर, और/या उसी जगह नए एलिमेंट जोड़कर, ऐरे की सामग्री बदल देता है।1
उदाहरण के लिए:
const names = ['Jack', 'Laura', 'Paul', 'Megan'];
names.splice(1, 1);
names;
// => ["Jack", "Paul", "Megan"]
names.length;
// => 3
names.forEach((name) => console.log(name));
// => Jack
// => Paul
// => Megan
ऐरे की length प्रॉपर्टी ऐरे में रखे आइटम की सूची से जुड़ी होती है।
इस लंबाई को बदला जा सकता है।
जब लंबाई बढ़ाई जाती है, तो empty वाली खाली जगहें बन जाती हैं, जिन्हें ऐरे पर चलते या बदलाव करते समय नहीं गिना जाता।
जब लंबाई घटाई जाती है, तो यह ऐरे के अंत से एलिमेंट हटा देती है।
const names = ['Jack', 'Laura', 'Paul', 'Megan'];
names.length = 6;
names;
// => ["Jack", "Laura", "Paul", "Megan", empty × 2]
names.length = 2;
// => ["Jack", "Laura"]
चूँकि ऐरे objects होते हैं, इसलिए typeof names का परिणाम "object" आता है।
यह जाँचने के लिए कि कोई चीज़ ऐरे है या नहीं, Array.isArray का उपयोग कीजिए:
const names = ['Jack', 'Laura', 'Paul', 'Megan'];
typeof names;
// => "object"
Array.isArray(names);
// => true
const object = {};
Array.isArray(object);
// => false
आपका मन names instanceof Array इस्तेमाल करने का हो सकता है। यह काम भी करता है, लेकिन हर हाल में नहीं।
ज़्यादा जानकारी के लिए यह लेख पढ़िए।
हर ऐरे ऑब्जेक्ट पर मौजूद मेथड में से कुछ का उपयोग ऐरे में जोड़ने या हटाने के लिए किया जा सकता है। इनमें से कुछ ये हैं:
push()मेथड ऐरे के अंत में एक या अधिक एलिमेंट जोड़ता है और ऐरे की नई लंबाई लौटाता है।2
const names = ['Jack', 'Laura', 'Paul', 'Megan'];
names.push('Jill'); // => 5
names;
// => ['Jack', 'Laura', 'Paul', 'Megan', 'Jill']
pop()मेथड ऐरे से अंतिम एलिमेंट हटाता है और उसी एलिमेंट को लौटाता है। इस मेथड से ऐरे की लंबाई बदल जाती है।3
const names = ['Jack', 'Laura', 'Paul', 'Megan'];
names.pop(); // => 'Megan'
names;
// => ['Jack', 'Laura', 'Paul']
shift()मेथड ऐरे से पहला एलिमेंट हटाता है और उस हटाए गए एलिमेंट को लौटाता है। इस मेथड से ऐरे की लंबाई बदल जाती है।4
const names = ['Jack', 'Laura', 'Paul', 'Megan'];
names.shift(); // => 'Jack'
names;
// => ['Laura', 'Paul', 'Megan']
unshift() मेथड ऐरे के शुरू में एक या अधिक एलिमेंट जोड़ता है और ऐरे की नई लंबाई लौटाता है।5
const names = ['Jack', 'Laura', 'Paul', 'Megan'];
names.unshift('Jill'); // => 5
names;
// => ['Jill', 'Jack', 'Laura', 'Paul', 'Megan']
splice() मेथड किसी ऐरे के मौजूदा एलिमेंट हटाकर या बदलकर, और/या उसी जगह नए एलिमेंट जोड़कर, ऐरे की सामग्री बदल देता है। यह मेथड हटाए गए एलिमेंट वाला एक ऐरे लौटाता है।1
const names = ['Jack', 'Laura', 'Paul', 'Megan'];
names.splice(2, 1, 'Jill'); // => ['Paul']
names;
// => ['Jack', 'Laura', 'Jill', 'Megan']
splice, MDN. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice (29 सितंबर 2021 को देखा गया) ↩
push, MDN. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push (29 सितंबर 2021 को देखा गया) ↩
pop, MDN. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop (29 सितंबर 2021 को देखा गया) ↩
shift, MDN. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift (29 सितंबर 2021 को देखा गया) ↩
unshift, MDN. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift (29 सितंबर 2021 को देखा गया) ↩