Khachatryan-dev

JavaScript Զանգվածներ

Հիմունքներ, Մեթոդներ

Aram
Khachatryan

Նկարագիր


JavaScript-ի զանգվածները հզոր գործիք են տվյալների կառավարման համար։ Այս հոդվածը միավորում է հիմնական հասկացությունները, ստեղծման եղանակները, կարևոր մեթոդները և պրակտիկ խորհուրդները՝ օգտագործելով պարզ և առաջադեմ օրինակներ։




1. Զանգվածների Ստեղծում


1.1. Literal Syntax (առաջարկվող)


    let arr1 = []; // Դատարկ զանգված
    let arr2 = [1, 'text', true]; // Խառը տիպեր

1.2. Constructor Syntax


    let numbers = new Array(1, 2, 3); // [1, 2, 3]
    let emptyArray = new Array(5); // Ստեղծում է դատարկ զանգված 5 տարրի համար

1.3. Խառը Տիպերի Զանգվածներ


JavaScript-ում զանգվածները կարող են պարունակել ցանկացած տիպի տվյալ՝


    let mixedArray = [ 
      1, 
      'երկու', 
      true, 
      { name: 'Արամ', age: 30 }, 
      [4, 5, 6] 
    ];

1.4 Array.from()


Ստեղծում է զանգված array-like կամ iterable օբյեկտից.


    let str = 'hello';
    let arr6 = Array.from(str); // ['h', 'e', 'l', 'l', 'o']

1.5 Array.of()


Ստեղծում է զանգված արգումենտներից՝ անկախ տիպից.


    let arr7 = Array.of(5); // [5] (Ոչ թե [ < 5 empty տարր > ])



2. Զանգվածների Հիմնական Հատկություններ


  • Դինամիկություն. Զանգվածների չափը և տարրերի տիպները կարող են փոփոխվել ցանկացած պահի։
  • Փոփոխականություն (Mutable). Տարրերը կարելի է ավելացնել, ջնջել կամ փոփոխել։
  • Ինդեքսավորում. Յուրաքանչյուր տարր հասանելի է 0-ից սկսվող ինդեքսով։

Օրինակ. Վերջին տարրի ելքագրում


    const fruits = ['խնձոր', 'բանան', 'մանգո'];
    console.log(fruits[fruits.length - 1]); // "մանգո"

Երկարություն (length)


    let fruits = ['apple', 'banana'];
    console.log(fruits.length); // 2
    fruits.length = 5; // ["apple", "banana", empty × 3]

Sparse Arrays


Խուսափեք բաց թողնված տարրերից.

    let sparseArr = [1, , 3]; // Վատ պրակտիկա

Հղումներ (References)


Զանգվածները օբյեկտներ են, հետևաբար հղվում են reference -ով․


    let arrA = [1, 2];
    let arrB = arrA;
    arrB.push(3);
    console.log(arrA); // [1, 2, 3]



3. Հիմնական Մեթոդներ


3.1. Mutator Methods (Փոփոխում են զանգվածը)


Մեթոդ Նկարագրություն Օրինակ
splice() Ջնջում/ավելացնում է տարրեր arr.splice(1, 0, 'x')
reverse() Շրջում է զանգվածը arr.reverse()
sort() Դասավորում է տարրերը arr.sort((a, b) => a - b)

3.2. Accessor Methods (Չեն փոփոխում զանգվածը)


Մեթոդ Նկարագրություն Օրինակ
concat() Միավորում է զանգվածներ arr.concat([4, 5])
includes() Ստուգում է տարրի առկայությունը arr.includes('apple')
indexOf() Տարրի ինդեքսի որոնում arr.indexOf('banana')

3.3. Iteration Methods


Մեթոդ Նկարագրություն Օրինակ
find() Գտնում է առաջին տարրը պայմանով arr.find(n => n > 2)
every() Ստուգում է բոլոր տարրերը arr.every(n => n > 0)
flat() "Պարզեցնում" բազմաչափ զանգվածը arr.flat(2)

3.4. Տարրերի Ավելացում/Ջնջում


Մեթոդ Նկարագրություն Օրինակ
push() Ավելացնում է տարր վերջից fruits.push('տանձ');
pop() Ջնջում է վերջին տարրը fruits.pop();
unshift() Ավելացնում է տարր սկզբից fruits.unshift('դեղձ');
shift() Ջնջում է առաջին տարրը fruits.shift();



4. Իտերացիա և Ցիկլեր


4.1. Classic For Loop


    for (let i = 0; i < arr.length; i++) {
      console.log(arr[i]);
    }

4.2. For...of Loop


    for (let item of arr) {
      console.log(item);
    }

4.3. Array.forEach()


    arr.forEach((item, index) => {
      console.log(index, item);
    });



5. Զանգվածների Փոխակերպում


5.1. Map & Filter


    let numbers = [1, 2, 3];
    let doubled = numbers.map(n => n * 2); // [2, 4, 6]
    let evens = numbers.filter(n => n % 2 === 0); // [2]

5.2. Reduce


    let sum = numbers.reduce((acc, curr) => acc + curr, 0); // 6

5.3. FlatMap


    let phrases = ["Hello world", "Goodbye universe"];
    let words = phrases.flatMap(phrase => phrase.split(' ')); // ["Hello", "world", "Goodbye", "universe"]



6. ES6+ Հատկություններ


6.1. Destructuring


    let [first, second] = [10, 20];
    console.log(first); // 10

6.2. Spread Operator


    let arr8 = [1, 2];
    let arr9 = [...arr8, 3]; // [1, 2, 3]

6.3. Array.fill()


    let arr10 = new Array(3).fill(0); // [0, 0, 0]



7. Բազմաչափ Զանգվածներ


7.1. Ստեղծում


    let matrix = [
        [1, 2],
        [3, 4],
        [5, 6]
    ];

7.2. Ելքագրել տարրեր


       console.log(matrix[1][0]); // 3

7.3. Փոխակերպում 1D զանգվածի


        let flatMatrix = matrix.flat(); // [1, 2, 3, 4, 5, 6]



8. Կատարողականություն և Օպտիմիզացիա


Shift/Unshift vs Push/Pop


shift/unshift-ը դանդաղ են մեծ զանգվածների համար (O(n) բարդություն):


    // Վատ
    arr.unshift(0); // Խուսափեք մեծ զանգվածներում
    
    // Լավ
    arr.push(4); // O(1) բարդություն

Խուսափեք Nested Loops-ից


Օգտագործեք Map կամ Set արագ որոնման համար.


    let map = new Map(arr.map(item => [item.id, item]));



9. Լավագույն Պրակտիկաներ


9.1. Օգտագործեք const՝ եթե զանգվածը չի վերագրվում.


    const colors = ['red', 'blue'];

9.2 Ստուգեք զանգվածի տիպը isArray-ով


    console.log(Array.isArray(colors)); // true

9.3 Խուսափեք մեծ զանգվածների կրկնօրինակումից


    // Վատ
    let copy = arr.slice();
    
    // Լավ (ES6)
    let copy = [...arr];



10. Կիրառական Օրինակներ


10.1. Տվյալների Մշակում API-ից


    // Ենթադրենք API-ից ստանում ենք զանգված օբյեկտների
    let users = [
      { id: 1, name: 'Աննա', age: 25 },
      { id: 2, name: 'Արամ', age: 30 }
    ];
    
    // Ֆիլտրել 30 տարեկանից մեծ օգտատերերին և ստանալ անունները
    let names = users
      .filter(user =&gt; user.age > 25)
      .map(user => user.name);
    
    console.log(names); // ["Արամ"]

10.2. Միաձուլել Երկու Զանգվածներ՝ Առանց Կրկնությունների


    let arrA = [1, 2, 3];
    let arrB = [3, 4, 5];
    let merged = [...new Set([...arrA, ...arrB])]; // [1, 2, 3, 4, 5]
Buy me a coffee
  • 0
  • 20

Բացահայտիր Նոր գիտելիքներ

Մեկնաբանություններ
No data
Մեկնաբանություն չկա։ Կարող ես լինել առաջինը։
Գրել մեկնաբանություն
ՄԵկնաբանություն ավելացնելու համար պետք է մուտք գործելՄուտք