Massivlar juda koâp usullarni taqdim etadi. Ishlarni engillashtirish uchun ushbu bobda ular guruhlarga boâlingan.
Elementlarni qoâshish/olib tashlash
Biz allaqachon elementlarni boshidan yoki oxiridan qoâshib olib tashlaydigan usullarni bilamiz:
arr.push(...items)â oxiriga narsalarni qoâshadi,arr.pop()â oxiridan elementni ajratib oladi,arr.shift()â boshidan elementni ajratib oladi,arr.unshift(...items)â elementlarni boshiga qoâshadi.
Mana boshqalar.
splice
Massivdan elementni qanday oâchirish mumkin?
Massivlar obyektlardir, shuning uchun biz delete dan foydalanishga urinib koârishimiz mumkin:
let arr = ["I", "go", "home"];
delete arr[1]; // "go" olib tashlash
alert(arr[1]); // undefined
// hozir arr = ["I", , "home"];
alert(arr.length); // 3
Element oâchirildi, ammo massivda hali ham 3 ta element mavjud, biz buni koârishimiz mumkin arr.length == 3.
Bu tabiiy, chunki obj.key ni oâchirish key yordamida qiymatni olib tashlaydi. Hammasi shu. Obyektlar uchun yaxshi. Ammo massivlar uchun biz odatda qolgan elementlarning siljishini va boâsh joyni egallashini istaymiz. Biz hozirda qisqaroq massivga ega boâlishni kutmoqdamiz.
Shunday qilib, maxsus usullardan foydalanish kerak.
arr.splice(str) usuli â bu massivlar uchun âShveytsariya armiyasining pichogâiâ. U hamma narsani qilishi mumkin: elementlarni qoâshish, olib tashlash va kiritish.
Sintaksis:
arr.splice(start[, deleteCount, elem1, ..., elemN])
U indeks pozitsiyasidan boshlanadi: deleteCount elementlarini olib tashlaydi va keyin ularning oârniga elem1, ..., elemN qoâshadi. Oâchirilgan elementlar masssivini qaytaradi.
Ushbu usulni misollar yordamida tushunish oson.
Oâchirish bilan boshlaymiz:
let arr = ["I", "study", "JavaScript"];
arr.splice(1, 1); // 1-indeksdan 1 ta elementni olib tashlang
alert( arr ); // ["I", "JavaScript"]
Oson, toâgârimi? 1 indeksidan boshlab, u 1 elementni olib tashladi.
Keyingi misolda biz uchta elementni olib tashlaymiz va ularni qolgan ikkitasi bilan almashtiramiz:
let arr = ["I", "study", "JavaScript", "right", "now"];
// birinchi uchta elementni olib tashlang va ularni boshqasiga almashtiring
arr.splice(0, 3, "Let's", "dance");
alert( arr ) // hozir ["Let's", "dance", "right", "now"]
Bu erda splice oâchirilgan elementlar massivini qaytarishini koârishimiz mumkin:
let arr = ["I", "study", "JavaScript", "right", "now"];
// birinchi ikkita elementni olib tashlang
let removed = arr.splice(0, 2);
alert( removed ); // "I", "study" <-- o'chirilgan elementlarning massivi
splice usuli elementlarni hech qanday olib tashlamasdan kiritishga qodir. Buning uchun biz deleteCount ni 0 ga oârnatishimiz kerak:
let arr = ["I", "study", "JavaScript"];
// indeks 2 dan
// o'chirish 0
// keyin "complex" va "language" ni kiriting
arr.splice(2, 0, "complex", "language");
alert(arr); // "I", "study", "complex", "language", "JavaScript"
Bu yerda va boshqa massiv usullarida salbiy indekslarga yoâl qoâyiladi. Ular massiv oxiridan pozitsiyani quyidagicha koârsatadilar:
let arr = [1, 2, 5];
// from index -1 (oxiridan bir qadam)
// 0 elementni o'chirish,
// keyin 3 va 4 ni kiriting
arr.splice(-1, 0, 3, 4);
alert( arr ); // 1,2,3,4,5
slice
arr.slice usuli oâxshash arr.splice ga qaraganda ancha sodda.
Sintaksis:
arr.slice([start], [end]);
U "start" dan "end" gacha ("end" hisobga olinmagan) barcha elementlarni oâz ichiga olgan yangi massivni qaytaradi. Har ikkala start va end ham salbiy boâlishi mumkin, bu holda massiv oxiridan pozitsiya qabul qilinadi.
U str.slice kabi ishlaydi, lekin submatnlar oârniga submassivlar yaratadi.
Masalan:
let arr = ["t", "e", "s", "t"];
alert(arr.slice(1, 3)); // e,s (copy from 1 to 3)
alert(arr.slice(-2)); // s,t (copy from -2 till the end)
We can also call it without arguments: arr.slice() creates a copy of arr. Thatâs often used to obtain a copy for further transformations that should not affect the original array.
concat
Metod arr.concat massivni boshqa massivlar va/yoki elementlar bilan birlashtiradi.
Sintaksis:
arr.concat(arg1, arg2...)
U har qanday argumentlarni qabul qiladi â yoki massivlar, yoki qiymatlar.
Natijada arr, keyin arg1, arg2 va hokazolarni oâz ichiga olgan yangi massiv hosil boâladi.
Agar argument massiv boâlsa yoki Symbol.isConcatSpreadable xususiyatiga ega boâlsa, unda uning barcha elementlari koâchiriladi. Aks holda, argumentning oâzi koâchiriladi.
Masalan:
let arr = [1, 2];
// arr ni [3,4] bilan birlashtirish
alert(arr.concat([3, 4])); // 1,2,3,4
// arr ni [3,4] va [5,6] bilan birlashtirish
alert(arr.concat([3, 4], [5, 6])); // 1,2,3,4,5,6
// arr ni [3,4] bilan birlashtirish, so'ngra 5 va 6 qiymatlarini qo'shish
alert(arr.concat([3, 4], 5, 6)); // 1,2,3,4,5,6
Odatda, u faqat elementlarni massivlardan koâchiradi (ularni âtarqatadiâ). Boshqa obyektlar, hatto ular massivga oâxshash boâlsa ham, umuman qoâshiladi:
let arr = [1, 2];
let arrayLike = {
0: "something",
length: 1,
};
alert(arr.concat(arrayLike)); // 1,2,[object Object]
â¦Agar massivga oâxshash obyektda Symbol.isConcatSpreadable xususiyati boâlsa, uning oârniga uning elementlari qoâshiladi:
let arr = [1, 2];
let arrayLike = {
0: "something",
1: "else",
[Symbol.isConcatSpreadable]: true,
length: 2
};
alert( arr.concat(arrayLike) ); // 1,2,something,else
Takrorlash: forEach
arr.forEach usuli massivning har bir elementi uchun funktsiyani bajarishga imkon beradi.
Sintaksis:
arr.forEach(function (item, index, array) {
// ... item bilan biror narsa qilish
});
Masalan, bu massivning har bir elementini koârsatadi:
// har bir element uchun ogohlantirish
["Bilbo", "Gandalf", "Nazgul"].forEach(alert);
Va ushbu kod maqsadli massivda ularning pozitsiyalari haqida batafsilroq maâlumot berilgan:
["Bilbo", "Gandalf", "Nazgul"].forEach((item, index, array) => {
alert(`${item} ${array} massivida ${index} indeksida`);
});
Funktsiya natijasi (agar u biron bir narsani qaytarsa) tashlanadi va eâtiborga olinmaydi.
Massivda qidirish
Bu massivda biror narsani qidirish usullari.
indexOf/lastIndexOf va includes
arr.indexOf, arr.lastIndexOf va arr.includes usullari bir xil sintaksisga ega. va aslida ularning matnga oâxshashadi, lekin belgilar oârniga elementlarda ishlashadi:
arr.indexOf(item, from)fromindeksdan boshlabitemni qidiradi va topilgan joyning indeksini qaytaradi, aks holda-1.arr.lastIndexOf(item, from)â xuddi shunday, lekin oângdan chapga qidiradi.arr.includes(item, from)âfromindeksdan boshlabitemni izlaydi, agar topilsatrueqiymatini beradi.
Masalan:
let arr = [1, 0, false];
alert(arr.indexOf(0)); // 1
alert(arr.indexOf(false)); // 2
alert(arr.indexOf(null)); // -1
alert(arr.includes(1)); // true
Eâtibor bering, usullarda === taqqoslash qoâllaniladi. Shunday qilib, agar biz false ni qidirsak, u nolni emas, balki false ni topadi.
Agar biz inklyuziyani tekshirishni istasak va aniq indeksni bilmoqchi boâlmasak, u holda arr.includes afzal.
Bundan tashqari, include ning juda oz farqi shundaki, u indexOf/lastIndexOf dan farqli oâlaroq, NaN da toâgâri ishlaydi.
const arr = [NaN];
alert(arr.indexOf(NaN)); // -1 (0 bo'lishi kerak, lekin === tenglik NaN uchun ishlamaydi)
alert(arr.includes(NaN)); // true (to'g'ri)
find va findIndex
Bizda bir obyektlar massivi mavjudligini tasavvur qiling. Muayyan shartli obyektni qanday topishimiz mumkin?
Bu yerda arr.find usuli foydalidir.
Sintaksis:
let result = arr.find(function (item, index, array) {
// agar true qaytarilsa, element qaytariladi va takrorlash to'xtatiladi
// false senariy uchun undefined qaytariladi
});
Funktsiya massivning har bir elementi uchun takroriy ravishda chaqiriladi:
itemelement hisoblanadi.indexbu uning indeksidir.arraymassivning oâzi.
Agar u true ni qaytarsa, qidiruv toâxtatiladi, item qaytariladi. Hech narsa topilmasa, undefined qaytariladi.
Masalan, bizda foydalanuvchilar massivi bor, ularning har biri id va name argumentlariga ega. Keling, id == 1 bilan topamiz:
let users = [
{ id: 1, name: "John" },
{ id: 2, name: "Pete" },
{ id: 3, name: "Mary" },
];
let user = users.find((item) => item.id == 1);
alert(user.name); // John
Haqiqiy hayotda obyektlar massivi odatiy holdir, shuning uchun find usuli juda foydali.
Eâtibor bering, biz misolda item => item.id == 1 funktsiyasini bitta argument bilan topish ni taâminlaymiz. Ushbu funktsiyaning boshqa argumentlari kamdan kam qoâllaniladi.
arr.findIndex usuli asosan bir xil, ammo u elementning oâzi oârniga element topilgan indeksni qaytaradi va hech narsa topilmaganda -1 qaytariladi.
filter
find usuli funktsiyani true qaytaradigan yagona (birinchi) elementni qidiradi.
Agar koâp boâlsa, biz arr.filter(fn) dan foydalanishimiz mumkin.
Sintaksis find ga oâxshaydi, lekin true allaqachon qaytarilgan boâlsa ham, massivning barcha elementlari uchun filtr takrorlashni davom ettiradi:
let results = arr.filter(function (item, index, array) {
// agar true element natijalarga chiqarilsa va takrorlanish davom etsa
// false senariy uchun bo'sh qatorni qaytaradi
});
Masalan:
let users = [
{ id: 1, name: "John" },
{ id: 2, name: "Pete" },
{ id: 3, name: "Mary" },
];
// dastlabki ikkita foydalanuvchi massivini qaytaradi
let someUsers = users.filter((item) => item.id < 3);
alert(someUsers.length); // 2
Massivni oâzgartirish
Ushbu boâlim massivni oâzgartirish yoki qayta tartiblash usullari haqida.
map
arr.map usuli eng foydali va tez-tez ishlatiladigan usullardan biridir.
Sintaksis:
let result = arr.map(function (item, index, array) {
// element o'rniga yangi qiymatni qaytaradi
});
U massivning har bir elementi uchun funktsiyani chaqiradi va natijalar massivini qaytaradi.
Masalan, biz har bir elementni uning uzunligiga aylantiramiz:
let lengths = ["Bilbo", "Gandalf", "Nazgul"].map((item) => item.length);
alert(lengths); // 5,7,6
sort(fn)
arr.sort usuli massivni joyida tartiblaydi.
Masalan:
let arr = [1, 2, 15];
// usul arr tarkibini qayta tartibga soladi (va uni qaytaradi)
arr.sort();
alert(arr); // 1, 15, 2
Natijada qandaydir gâalati narsani sezdingizmi?
Tartib 1, 15, 2 boâldi. Notoâgâri. Lekin nega?
Sukut boâyicha elementlar matn sifatida tartiblangan.
Toâgâridan-toâgâri, barcha elementlar matnlarga aylantiriladi va keyin taqqoslanadi. Shunday qilib, leksikografik tartib qoâllaniladi va haqiqatan ham "2" > "15".
Oâzimizning tartiblash usulimizdan foydalanish uchun biz ikkita argumentning funktsiyasini array.sort() argumenti sifatida taâminlashimiz kerak.
Funktsiya shunday ishlashi kerak:
function compare(a, b) {
if (a > b) return 1; // if the first value is greater than the second
if (a == b) return 0; // if values are equal
if (a < b) return -1; // if the first value is less than the second
}
Masalan:
function compareNumeric(a, b) {
if (a > b) return 1;
if (a == b) return 0;
if (a < b) return -1;
}
let arr = [ 1, 2, 15 ];
arr.sort(compareNumeric);
alert(arr); // 1, 2, 15
Endi u maqsadga muvofiq ishlaydi.
Keling, chetga chiqib, nima boâlayotganini oâylab koâraylik. arr har qanday narsaning massivi boâlishi mumkin, shunday emasmi? Unda raqamlar yoki matnlar yoki HTML elementlari yoki boshqa narsalar boâlishi mumkin. Bizda bir narsa toâplami mavjud. Uni saralash uchun uning elementlarini taqqoslashni biladigan tartiblash funktsiyasi kerak. Sukut boâyicha matn tartibi.
arr.sort(fn) usuli tartiblash algoritmini oârnatilgan dasturiga ega. Biz uning qanday ishlashiga ahamiyat berishimiz shart emas (koâpincha optimallashtirilgan quicksort). U massivda yuradi, taqdim etilgan funktsiya yordamida elementlarini taqqoslaydi va ularni tartibini oâzgartiradi, bizga taqqoslashni amalga oshiradigan fn kerak boâladi.
Aytgancha, qaysi elementlar taqqoslanganligini bilmoqchi boâlsak â ularni ogohlantirishga hech narsa toâsqinlik qilmaydi:
[1, -2, 15, 2, 0, 8].sort(function (a, b) {
alert(a + " <> " + b);
return a - b;
});
Algoritm bu jarayonda elementni bir necha marta taqqoslashi mumkin, ammo iloji boricha kamroq taqqoslashga harakat qiladi.
Aslida, taqqoslash funktsiyasi faqat ijobiy sonni âkattaroqâ, manfiy raqamni âkamroqâ deb qaytarish uchun talab qilinadi.
Bu qisqa funktsiyalarni yozishga imkon beradi:
let arr = [ 1, 2, 15 ];
arr.sort(function(a, b) { return a - b; });
alert(arr); // 1, 2, 15
Esingizdami "function-expressions-arrows" maqolasi topilmadi? Biz ularni bu yerda chiroyli tartiblash uchun ishlatishimiz mumkin:
arr.sort( (a, b) => a - b );
Bu yuqoridagi boshqa, uzoqroq versiya bilan bir xil ishlaydi.
reverse
arr.reverse usuli arr dagi elementlarning tartibini oâzgartiradi.
Masalan:
let arr = [1, 2, 3, 4, 5];
arr.reverse();
alert(arr); // 5,4,3,2,1
Bu, shuningdek, arr massivni qaytaradi.
split va join
Mana, hayotdagi holat. Biz xabar almashish dasturini yozmoqdamiz va odam qabul qiluvchilarning vergul bilan ajratilgan roâyxatini kiritdi: John, Pete, Mary. Ammo biz uchun ismlar massivi bitta matnga qaraganda ancha qulayroq boâlar edi. Qanday qilib olish mumkin?
str.split(delim) usuli aynan shu narsani qiladi. U matnni berilgan massivga ajratadi delim.
Quyidagi misolda biz vergul bilan boâsh joyni boâldik:
let names = "Bilbo, Gandalf, Nazgul";
let arr = names.split(", ");
for (let name of arr) {
alert(`A message to ${name}.`); // A message to Bilbo (va boshqa ismlar)
}
split usuli ixtiyoriy ikkinchi raqamli argumentga ega â bu massiv uzunligining chegarasi. Agar u taqdim etilsa, unda qoâshimcha elementlar eâtiborga olinmaydi. Amalda u kamdan-kam hollarda qoâllaniladi:
let arr = "Bilbo, Gandalf, Nazgul, Saruman".split(", ", 2);
alert(arr); // Bilbo, Gandalf
Boâsh s bilan split(s) ni chaqirish matnni harflar massiviga ajratadi:
let str = "test";
alert( str.split('') ); // t,e,s,t
arr.join(separator) chaqiruvi split ga teskari harakat qiladi. U orasida separator bilan yopishtirilgan arr matnini yaratadi.
Masalan:
let arr = ["Bilbo", "Gandalf", "Nazgul"];
let str = arr.join(";"); // glue the array into a string using ;
alert(str); // Bilbo;Gandalf;Nazgul
reduce/reduceRight
Biz massivni takrorlashimiz kerak boâlganda â forEach, for yoki for..of dan foydalanishimiz mumkin.
Har bir element uchun maâlumotlarni takrorlash va qaytarish kerak boâlganda biz map dan foydalanishimiz mumkin.
arr.reduce va arr.reduceRight usullari ham ushbu zotga tegishli, ammo biroz murakkabroq. Ular massiv asosida bitta qiymatni hisoblash uchun ishlatiladi.
Sintaksis:
let value = arr.reduce(
function (accumulator, item, index, array) {
// ...
},
[initial]
);
Funktsiya elementlarga qoâllaniladi. Siz 2-dan boshlab tanish boâlgan argumentlarni koârishingiz mumkin:
itemâ joriy massiv elementi.indexâ uning pozitsiyasi.arrayâ bu massiv.
Hozircha, forEach/map kabi. Ammo yana bir argument bor:
previousValueâ oldingi funktsiya chaqiruvining natijasidir, birinchi chaqiruv uchunboshlang'ich.
Buni tushunishning eng oson usuli, bu misol.
Bu erda biz bitta satrda massiv yigâindisini olamiz:
let arr = [1, 2, 3, 4, 5];
let result = arr.reduce((sum, current) => sum + current, 0);
alert(result); // 15
Bu erda biz faqat 2 ta argumentdan foydalanadigan reduce ning eng keng tarqalgan variantini qoâlladik.
Keling, nima boâlayotganini batafsil koârib chiqamiz.
- Birinchi bajarilishda
sumâ boshlangâich qiymat (reducening soânggi argumenti),0ga teng, vajoriyqiymat â bu birinchi massiv elementi,1ga teng. Shunday qilib natija1dir. - Ikkinchi bajarilishda
sum = 1, unga ikkinchi massiv elementini (2) qoâshamiz va qaytaramiz. - Uchinchi bajarilishda
sum = 3va unga yana bitta element qoâshamiz va hokazoâ¦
Hisoblash oqimi:
Yoki jadval shaklida, bu yerda har bir satr keyingi qator elementidagi funktsiya chaqiruvini ifodalaydi:
sum |
current |
result | |
|---|---|---|---|
| birinchi chaqiruv | 0 |
1 |
1 |
| ikkinchi chaqiruvl | 1 |
2 |
3 |
| uchinchi chaqiruv | 3 |
3 |
6 |
| toârtinchi chaqiruv | 6 |
4 |
10 |
| beshinchi chaqiruv | 10 |
5 |
15 |
Koârib turganimizdek, avvalgi qoângâiroq natijasi keyingisining birinchi argumentiga aylanadi.
Shuningdek, biz dastlabki qiymatni qoldirib yuborishimiz mumkin:
let arr = [1, 2, 3, 4, 5];
// reduce dan boshlang'ich qiymat o'chirildi (0 yo'q)
let result = arr.reduce((sum, current) => sum + current);
alert(result); // 15
Natija bir xil. Buning sababi shundaki, agar boshlangâich boâlmasa, unda reduce massivning birinchi elementini boshlangâich qiymati sifatida qabul qiladi va takrorlashni 2-elementdan boshlaydi.
Hisoblash jadvali yuqoridagi kabi, birinchi qatorni olib tashlagach.
Ammo bunday foydalanish juda ehtiyotkorlik talab qiladi. Agar massiv boâsh boâlsa, u holda reduce chaqiruvi xatolikka olib keladi.
Mana bir misol:
let arr = [];
// Xato: boshlang'ich qiymati bo'lmagan bo'sh massivni kamaytirish
// agar boshlang'ich qiymat mavjud bo'lsa, reduce uni bo'sh arr uchun qaytaradi.
arr.reduce((sum, current) => sum + current);
Shuning uchun har doim boshlangâich qiymatni koârsatish tavsiya etiladi.
arr.reduceRight usuli ham xuddi shunday qiladi, lekin oângdan chapga ishlaydi.
Array.isArray
Massivlar alohida til turini hosil qilmaydi. Ular obyektlarga asoslangan.
Shunday qilib, typeof oddiy obyektni massivdan ajratishga yordam bermaydi:
alert(typeof {}); // obyekt
alert(typeof []); // bir xil
â¦Ammo massivlar shu qadar tez-tez ishlatiladiki, buning uchun maxsus usul mavjud: Array.isArray(value). Agar value massiv boâlsa, true, aks holda false ni qaytaradi.
alert(Array.isArray({})); // false
alert(Array.isArray([])); // true
Koâp usullar âthisArgâ ni qoâllab-quvvatlaydi
find, filter, map kabi funktsiyalarni chaqiradigan deyarli barcha massiv usullari, sort dan tashqari, thisArg qoâshimcha parametrlarini qabul qiladi.
Ushbu parametr yuqoridagi boâlimlarda tushuntirilmagan, chunki u kamdan kam qoâllaniladi. Ammo toâliqlik uchun biz buni qoplashimiz kerak.
Mana ushbu usullarning toâliq sintaksisi:
arr.find(func, thisArg);
arr.filter(func, thisArg);
arr.map(func, thisArg);
// ...
// thisArg ixtiyoriy oxirgi argument
thisArg parametrining qiymati func uchun this ga aylanadi.
Masalan, bu erda biz filtr sifatida obyekt usulidan foydalanamiz va thisArg foydalidir:
let army = {
minAge: 18,
maxAge: 27,
canJoin(user) {
return user.age >= this.minAge && user.age < this.maxAge;
}
};
let users = [
{age: 16},
{age: 20},
{age: 23},
{age: 30}
];
// barcha user userdan yoshroq deb toping
let youngerUsers = users.filter(user.younger, user);
alert(soldiers.length); // 2
alert(soldiers[0].age); // 20
alert(soldiers[1].age); // 23
Yuqoridagi qoângâiroqda biz user.younger dan filtr sifatida foydalanamiz va buning uchun kontekst sifatida user ni taqdim etamiz. Agar biz kontekstni taqdim qilmagan boâlsak, users.filter(user.younger) user.younger ni mustaqil funktsiya sifatida this = undefined bilan chaqiradi. Bu darhol xato degani.
Xulosa
Massiv usullaridan qoâllanma:
-
Elementlarni qoâshish/olib tashlash uchun:
push(...items)â oxiriga elementlarni qoâshadi,pop()â elementni oxiridan ajratib oladi,shift()â boshidan elementni ajratib oladi,unshift(...items)â elementlarni boshiga qoâshadi.splice(pos, deleteCount, ...items)âposindeksdadeleteCountelementlarni oâchirish vaitemsni qoâshish.slice(start, end)â yangi massiv yaratadi, elementlarnistartdanendgacha (shu jumladan emas) massivga koâchiradi.concat(...items)â yangi massivni qaytaradi: mavjud boâlgan barcha aâzolarni nusxalaydi va ungaitemslarni qoâshadi. Agaritemsning birortasi massiv boâlsa, unda uning elementlari olinadi.
-
Elementlar orasida qidirish uchun:
indexOf/lastIndexOf(item, pos)âposholatidan boshlabitemni qidiradi, va indeksni qaytaradi, topilmasa-1ni.includes(value)â agar massivdavalueboâlsatrue, aks holdafalseqaytariladi.find/filter(func)â funktsiya orqali elementlar filtrlaniladi,trueqaytaradigan barcha qiymatlarni qaytaradi.findIndexfindga oâxshaydi, lekin qiymat oârniga indeksni qaytaradi.
-
Elementlar ustida takrorlash uchun:
forEach(func)â har bir element uchunfuncni chaqiradi, hech narsa qaytarmaydi.
-
Massivni oâzgartirish uchun:
map(func)â har bir element uchunfuncni chaqirish natijalaridan yangi massiv yaratadi.sort(func)â massivni joyida saralaydi, keyin qaytaradi.reverse()â massivni teskariga oâzgartiradi, keyin qaytaradi.split/joinâ matnni massivga va orqaga aylantiradi.reduce(func, initial)â har bir element uchunfuncchaqirib, chaqiruvlar orasidagi oraliq natijani berib, massiv ustida bitta qiymatni hisoblaydi.
-
Qoâshimcha:
Array.isArray(arr)arrmassiv ekanligini tekshiradi.
Iltimos eâtibor bering, sort, reverse va splice usullari massivni oâzini oâzgartiradi.
Ushbu usullar eng koâp ishlatiladigan usullar boâlib, ular 99% holatlarni qamrab oladi. Ammo boshqalar ham bor:
-
arr.some(fn)/arr.every(fn) massivni tekshiradi.
fnfunktsiyasi massivning har bir elementidamapga oâxshash chaqiriladi. Agar natijala/natijalartrueboâlsa,true, aks holdafalseni qaytaradi. -
arr.fill(value, start, end) â qatorni
startdanendgacha takrorlanadiganvaluebilan toâldiradi. -
arr.copyWithin(target, start, end) â uning elementlarini
startpozitsiyasidanendpozitsiyasiga oâziga,targetpozitsiyasida nusxalash (mavjudligini qayta yozish).
Toâliq roâyxat uchun qoâllanma ga qarangâ¦
Birinchi qarashdan juda koâp usullar borligi esga olinishi qiyin tuyulishi mumkin. Ammo aslida bu koârinadiganidan ancha osonroq.
Ulardan xabardor boâlish uchun qoâllanmani koârib chiqing. Keyin ushbu bobning vazifalarini amaliy ravishda hal qiling, shunda siz massiv usullari bilan tajribangizga ega boâlasiz.
Keyinchalik, qachondir siz massiv bilan biror narsa qilishingiz kerak boâlsa va qanday qilishni bilmasangiz â bu yerga keling, qoâllanmaga qarang va toâgâri usulni toping. Uni toâgâri yozishga misollar yordam beradi. Yaqinda siz usullarni avtomatik ravishda eslab qolasiz.
Izohlar
<code>yorlig'ini ishlating, bir nechta satrlar uchun - ularni<pre>yorlig'i bilan o'rab qo'ying, 10 satrdan ortiq bo'lsa - sandbox (plnkr, jsbin, codepenâ¦)