զանգվածներ (Arrays)
"զանգվածը հզոր գործիք է տվյալները կարգավորված պահելու և արդյունավետ մշակելու համար:"
Element
զանգվածում պահվող արժեքը:
Index
Տարրի դիրքը (սկսած 0-ից):
Length
Տարրերի քանակը (Max Index + 1):
Հայտարարում և Մուտք
զանգվածները օբյեկտների հատուկ տեսակ են, որոնք նախատեսված են կարգավորված տվյալներ պահելու համար:
Ստեղծում (Literal)
Ամենատարածված ձևը քառակուսի փակագծերի օգտագործումն է:
let fruits = [
"🍎",
"🍊",
"🍐"
]; // Հագեցած զանգված
let empty = [ ];
// Դատարկ զանգված
Տարրերի հասանելիություն
Զանգվածի տարրերը համարակալվում են 0-ից: Ցանկացած տարրի կարելի է դիմել իր համապատասխան ինդեքսի միջոցով:
fruits[0]; // "🍎" (Առաջին տարր)fruits[1];
// "🍊" (Երկրորդ տարր)
Տեսակների ազատություն
զանգվածը կարող է պահել ցանկացած տեսակի տվյալ՝ string, number, boolean, object և նույնիսկ այլ զանգվածներ:
let mixed = [ 1, "🍎",
true, {id:
1} ];
Տիպի ճշգրիտ ստուգում
console.log(typeof
[ ]);
// "object" (Ոչ բավարար)Array.isArray([ ]);
// true (Հուսալի)
* Քանի որ JS-ում զանգվածը օբյեկտ է, typeof-ը
միշտ կվերադարձնի "object": Ճիշտ ստուգման համար միշտ
օգտագործեք Array.isArray():
զանգվածը հիշողության մեջ (Heap) պահվում է որպես օբյեկտ՝ հատուկ ներքին կառուցվածքով, որտեղ length-ը ավտոմատ թարմացվող հատկություն է:
Հիմնական Մեթոդներ (LIFO/FIFO)
Վերջից (Արագ)
- push: Ավելացնում է տարր վերջից.
- pop: Հեռացնում է վերջին տարրը.
Սկզբից (Դանդաղ)
- unshift: Ավելացնում է տարր սկզբից.
- shift: Հեռացնում է առաջին տարրը.
Կոդի Օրինակ (Queue & Stack)
// FIFO (First In, First Out) - Հերթ
queue.push("Pear"); // ["Apple", "Orange", "Pear"]
queue.shift(); // հեռացնում է "Apple" -> ["Orange", "Pear"]
let stack = [];
stack.push(1); // [1]
stack.push(2); // [1, 2]
stack.pop(); // հեռացնում է 2 -> [1]
Ինչո՞ւ է սա կարևոր (Performance Insight)
Արագ (O(1))
push և pop մեթոդները միայն ավելացնում/հեռացնում են տարրը զանգվածի վերջից և թարմացնում length-ը:
Դանդաղ (O(n))
shift և unshift մեթոդների դեպքում JS-ը ստիպված է վերահասցեավորել բոլոր տարրերի ինդեքսները:
զանգվածների Շրջանցում
for...of ցիկլ
for (let fruit
of fruits) {console.log(fruit);}
Ամենապարզ և ժամանակակից ձևը արժեքները ստանալու համար:
length հատկությունը
arr.length-ը միշտ վերադարձնում է վերջին
ինդեքսը + 1: Այն կարելի է օգտագործել նաև զանգվածը մաքրելու
համար՝ arr.length = 0:
length-ը, զանգվածը կկրճատվի (տվյալները կջնջվեն
անվերադարձ):