Ինչպես փոխել տարրերի կարգը զանգվածում?
sobes.tech AI
Պատասխան AI-ից
Մասիվի տարրերի կարգը փոխելու համար դուք կարող եք օգտագործել մի քանի մոտեցումներ:
-
reverse(): Փոխում է զանգվածը տեղում, հակառակ կարգով դասավորելով տարրերը:const arr = [1, 2, 3, 4, 5]; arr.reverse(); // arr այժմ [5, 4, 3, 2, 1] -
sort(): Դասավորում է զանգվածը տեղում: Դյուրին դեպքում դասավորում է որպես տողեր: Թվային դասավորության համար անհրաժեշտ է փոխանցել համեմատական ֆունկցիա:const arr = [3, 1, 4, 1, 5, 9, 2, 6]; arr.sort(); // Դյուրին դասավորում (որպես տողեր) // arr այժմ [1, 1, 2, 3, 4, 5, 6, 9] const arrNum = [3, 1, 4, 1, 5, 9, 2, 6]; arrNum.sort((a, b) => a - b); // Աճման կարգով դասավորում // arrNum այժմ [1, 1, 2, 3, 4, 5, 6, 9] arrNum.sort((a, b) => b - a); // Կայուն նվազման կարգով // arrNum այժմ [9, 6, 5, 4, 3, 2, 1, 1] -
Նոր զանգված ստեղծել փոփոխված կարգով: Եթե ուզում եք խուսափել սկզբնական զանգվածի փոփոխությունից, կարող եք օգտագործել մեթոդների համակցում:
-
Կոպիա
reverse()-ով:const arr = [1, 2, 3, 4, 5]; const reversedArr = [...arr].reverse(); // Կատարում ենք կոպիա և հակառակ կարգով դասավորում // reversedArr այժմ [5, 4, 3, 2, 1] // arr մնում է [1, 2, 3, 4, 5] -
Կոպիա
sort()-ով:const arr = [3, 1, 4, 1, 5]; const sortedArr = [...arr].sort((a, b) => a - b); // Կատարում ենք կոպիա և դասավորում // sortedArr այժմ [1, 1, 3, 4, 5] // arr մնում է [3, 1, 4, 1, 5] -
Հատուկ կարգ (ավելի բարդ դեպք): Եթե անհրաժեշտ է հատուկ կարգ, որը չի հանդիսանում պարզ դասավորության կամ հակառակ կարգի արդյունք, հնարավոր է, որ անհրաժեշտ լինի ձեռքով վերակազմել տարրերը կամ օգտագործել ավելի բարդ ալգորիթմներ։ Օրինակ, շփում (shuffle):
const arr = [1, 2, 3, 4, 5]; const shuffledArr = [...arr]; for (let i = shuffledArr.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); [shuffledArr[i], shuffledArr[j]] = [shuffledArr[j], shuffledArr[i]]; // Տարածում տարրերը (դեստրուկտուրացում) } // shuffledArr այժմ պատահականորեն շփված է // arr մնում է [1, 2, 3, 4, 5]
-
Ընտրությունը կախված է ցանկալի արդյունքից (հակառակ կարգ, դասավորում, պատահական կարգ) և նրանից, արդյոք պետք է փոփոխվի սկզբնական զանգվածը կամ ոչ։