JavaScript massiv usullari. JavaScript massividagi bitta elementni qanday ko'rish mumkin? JavaScript-da Masivi

Golovna / 2 Ajoyib o'quvchi

Massiv konstruktori tomonidan taqdim etilgan turli usullar yordamida massivlar bilan ishlashingiz mumkin.

Pop/surish va siljish/o‘chirish usullari

Keling, pop() va push() usullarini ko'rib chiqaylik. Bu usullar stek kabi massivlar bilan ishlash imkonini beradi. Stack - bu LIFO printsipidan foydalangan holda tashkilotlarning elementlariga kirish huquqiga ega bo'lgan ma'lumotlar tuzilmasi (inglizcha: oxirgi kir - birinchi bo'lib chiqadi, "oxirgi kir - birinchi chiqadi"). Stackning printsipini bir stakan plastinka bilan solishtirish mumkin: boshqa hayvonni olish uchun siz yuqori qismini olib tashlashingiz kerak. Buning qanday ishlashi chaqaloqda tasvirlangan:

Keling, push() va pop() usullarini ko'rib chiqaylik. Push() usuli massiv oxiriga bir yoki bir nechta yangi elementlarni qo'shadi va yangi elementni aylantiradi. Pop() usuli massivning qolgan elementini olib tashlaydi, massivning qolgan qismini o'zgartiradi va qiymatlarni undan uzoqroqqa aylantiradi. Warto ushbu usullardan massivni biror joyga oʻzgartirish uchun ishlatganlarga hurmat koʻrsating va uning oʻzgartirilgan nusxasini yaratmang.

Var foo =; // foo: foo.push(1,2); // foo: 2 ni aylantiring foo.pop(); // foo: 2 foo.pushni aylantiring (3); // foo: 2 ni aylantiring foo.pop(); // foo: 3 marta aylantir foo.push(); // foo: ] 2 ni aylantir foo.pop() // foo: foo.pop(); // foo: Turn 1 var fruits = ["nok", "banan", "olma"]; var picked = fruits.pop(); document.write("Siz menikini oldingiz" + tanladingiz); Urunib ko'r "

Shift() va unshift() usullari pop() va push() kabi ko'p qo'llaniladi, chunki ular massivga elementlar kiritmaydi va qo'shmaydi. unshift() usuli yangi elementlarga joy ochish uchun ikkita katta indeksdagi mavjud elementlarni almashtiradi, massivga bir yoki bir nechta elementlarni qo‘shadi va yangi massivni aylantiradi. Shift() usuli massivning birinchi elementini tanlaydi va uning qiymatini aylantiradi va keyingi barcha elementlarni egallaydi. Yaxshi dam oling massivning kosasida.

Var f =; // f: f.unshift(1); // f: Aylantirish: 1 f.unshift(22); // f: Aylantirish: 2 f.shift(); // f: Aylantirish: 22 f.unshift(3,); // f:,1] Aylantirish: 3 f.shift(); // f:[,1] Aylantirish: 3 f.shift(); // f: f.shift(); // f: Aylantirish: 1

qo'shilish usuli

Array.join() massiv elementlarini bir qatorga birlashtirish uchun ishlatiladi. Siz ketma-ket pastki elementlar uchun ishlatiladigan usulga majburiy bo'lmagan qator argumentini o'tkazishingiz mumkin. Agar siz vazifalarni ajratmasangiz, unda usuldan foydalansangiz, siz komada bo'lasiz.

Var a = ["Shamol", "Dosch", "Vogon"]; var myVar1 = a.join(); //"Wind,Dosch,Vogon" var myVar2 = a.join(", "); //"Wind, Dosch, Vogon" var myVar3 = a.join(" + "); //"Wind + Dosh + Vogon" document.write(myVar1 + "
" + myVar2 + "
+ myVar3); Urunib ko'r "

Array.join() metodi String.split() usuliga qarama-qarshi bo‘lib, qatorni bo‘laklarga bo‘lish orqali massiv hosil qiladi.

teskari usul

Array.reverse() usuli massivdagi elementlarni oldingisiga o‘tkazish tartibini o‘zgartiradi va massivni qayta tartiblangan elementlar bilan aylantiradi. Bu usul qayta tartiblangan elementlardan yangi massiv yaratmaydi, balki ularni mavjud massivdan qayta tartiblaydi.

Var myArr = ["bir", "ikki", "uch"]; document.write(myArr.reverse()); Urunib ko'r "

konkat usuli

Array.concat() usuli concat() usuliga o'tkazilgan barcha argumentlarning qiymatlarini ketma-ket qo'shib, chiqish massivining elementlarini o'z ichiga olish uchun yangi massivni yaratadi va aylantiradi. Agar ushbu argumentlarning birortasi massiv bo'lsa, uning barcha elementlari qo'shiladi. Massiv nomlari argument sifatida yoziladi va ularning elementlarini birlashtirish kerak bo'lgan tartibda ko'rsatiladi.

Var a =; a.concat(4, 5) // Rotate a.concat(); //xuddi shunday - aylantiring a.concat(,) //Rotate

saralash usuli

Array.sort() usuli asosan massiv elementlarini saralaydi va massivning tartiblanishini aylantiradi. sort() usuli argumentsiz chaqirilganda massiv elementlarini alifbo tartibida tartiblaydi (u keyingi qator saralanmaguncha ularni darhol qatorlarga aylantiradi). Argument sifatida sort() usuli elementlarni tartiblash tartibini ko'rsatadigan tekislash funktsiyasini olishi mumkin.

Var a = ["Kivi", "Apelsin", "Armut"]; a.sort(); var s = a.join(", "); //Apelsin, nok, kivi hujjati.yozish(lar); //Raqamli misol var myArr = ; myArr.sort(); document.write(myArr); //1,10,2 urinib ko'ring »

Raqamlarni saralagandan so'ng, siz biroz boshqacha natijaga erishdingiz. Bu tartiblash sort() usuli elementlarni qatorlarga aylantirish orqali tartiblashi tufayli yuzaga keladi. Shuning uchun ular qator tartibiga ega - hatto "10"

Alifbo tartibidan boshqa har qanday boshqa tartibda saralash uchun tartiblash funksiyasiga argument sifatida sort() usulini o'tkazishingiz mumkin. E'tibor bering, hizalama funktsiyasini o'zingiz yozishingiz kerak bo'ladi. Ushbu funktsiya ikkita parametrni oladi, shuning uchun tartiblangan ro'yxatda ikkita argumentdan qaysi biri ishlatilishini belgilaydi. Bunday funktsiyani va elementlarning tartibini belgilaydigan bir qator qoidalarni tushunish va yozishni osonlashtirish uchun:

  • Agar birinchi argument boshqasiga o'tkazilishi mumkin bo'lsa, tenglashtirish funktsiyasi berilgan raqamni aylantiradi (a
  • Agar birinchi argument boshqasiga ergashsa, tenglashtirish funktsiyasi ijobiy sonni aylantiradi (a > b sifatida)
  • Agar ikkita qiymat ekvivalent bo'lsa (ularning aylanish tartibi muhim emas), tenglashtirish funktsiyasi 0 ga aylanadi (a == b sifatida)

Argumentlarni tenglashtirish uchun vikory funksiyasi massiv elementlaridan foydalanadi:

Funktsiya foo(a,b) ( //tekshirish funktsiyasini bildiradi, agar (a b) 1 qaytarilsa; 0 qaytarilsa; //a == b ) var a = ; a.sort(foo); //argument hujjat funktsiyaga qanday uzatiladi.write(a.join(", ")); //uni qisqaroq ham yozishingiz mumkin var a = ; a.sort(funksiya(a,b) ( //vicoris anonim funksiyasi a - b qaytaradi; //funksiya 0 qiymatlarini aylantiradi)); hujjat.write(a); //1,2,5,10 Sinab ko'ring »

Ilovadagi birinchi yozuv uning qanday ishlashini tushunishni osonlashtiradigan tarzda yozilgan. Hurmatni tiklang, boshqa fragmentda anonim funktsiyani qo'lda vikorizatsiya qilish qanchalik oson. U faqat bir marta qo'ng'iroq qiladi, ismini aytishga hojat yo'q.

Agar massivda aniqlanmagan elementlar bo'lsa, ular massiv oxiriga o'tkaziladi.

kesish usuli

Array.slice() usuli massivdan belgilangan bo‘lakni nusxalash va nusxalangan elementlarni saqlash uchun yangi massivni aylantirish uchun ishlatiladi. Chiqish massivi o'zgarmaydi.

Usul sintaksisi:

Im_array.slice(boshlash, tugatish);

Keyin massivni massiv bilan almashtirish kerak, bu esa yangi massiv uchun yangi elementlar to'plamini chizishni talab qiladi. Usul ikki argumentni oladi, ular aylantirilayotgan massivning qulog'i va oxirini ifodalaydi. Usul massivning boshidan oxirigacha, shu jumladan oxirigacha bo'lgan qismini nusxalaydi. Agar faqat bitta argument ko'rsatilgan bo'lsa, aylantiriladigan massiv massiv oxirigacha ko'rsatilgan pozitsiyadagi barcha elementlarni o'z ichiga oladi. Salbiy indekslarni tanlashingiz mumkin - ular massivning oxiridan yo'q qilinadi.

Var arr =; arr.slice(0,3); //arr.slice(3) ni aylantiring; //arr.slice(1,-1) ni aylantiring; //arr.slice(-3,-2); //Buriling

ulash usuli

Array.splice() usuli massivlar bilan ishlashning universal usuli hisoblanadi. U slice() va concat() usullari kabi yangi massivni aylantirish o‘rniga massivni yangisiga almashtiradi. Splice usuli massivdan elementlarni olib tashlashi, yangi elementlarni kiritishi, elementlarni birma-bir yoki bir vaqtning o'zida almashtirishi mumkin. Siz o'chirilmagan elementlardan olingan, olib tashlangan elementlardan tashkil topgan massivni aylantirasiz va bo'sh massivni aylantirasiz.

Usul sintaksisi:

Array_name.splice(indeks, raqam, element1, ..., elementN);

Birinchi argument elementlarni kiritish va olib tashlashni boshlash uchun massiv indeksini belgilaydi. Boshqa argument birinchi argumentda ko'rsatilgan indeksdan boshlab massivdan olib tashlanadigan elementlar sonini belgilaydi; agar boshqa argument 0 dan past bo'lsa, elementlar o'chirilmaydi. Yana bir qoldirmaslik argumenti sifatida massivning barcha elementlari belgilangan indeksdan boshlab, massiv oxirigacha olib tashlanadi. Salbiy pozitsiya raqami olib tashlanganida, elementlar massivning oxirida bo'ladi.

Var fruits = ["apelsin", "olma", "nok", "uzum"]; var o'chirildi = fruits.splice(2,2); //Turn ["nok", "uzum"] document.write(o'chirildi); var arr =; arr.splice(4); //burilish; massivning bo'lishi: arr.splice(1,2); //burilish; massivning bo'lishi: arr.splice(1,1); //burilish; masiv stav: Sinab ko'ring »

Splice() usulining dastlabki ikkita argumenti ko'rsatiladigan massivning elementlarini belgilaydi. Ushbu ikkita argumentdan keyin birinchi argument tomonidan ko'rsatilgan pozitsiyadan boshlab massivga kiritiladigan elementlarni ko'rsatadigan istalgan miqdordagi qo'shimcha argumentlar kelishi mumkin.

Var mevalar = ["apelsin", "olma"]; fruits.splice(2,0, "kavuni"); //Hujjatni aylantiring.write(mevalar); //bo'ldi ["apelsin", "olma", "kavuni"] var arr =; arr.splice(2,0, "a", "b"); //burilish; arr.splice(2,2,); //Burish ["a", "b"]; ,3,4,5 bo‘ldi] Sinab ko‘ring »

Shuni ta'kidlash kerakki, concat() ga qo'shimcha ravishda splice() usuli argument sifatida uzatiladigan massiv elementlarini ajratmaydi. Usul kiritish uchun massiv uzatilsa, u massiv elementlarini emas, balki massivning o‘zini kiritadi.

toString usuli

toString() usuli massiv elementlarini alohida belgi kabi qatorga aylantiradi.

Var arr = ["Sut", "Non", "Jigar"]; var food = arr.toString(); hujjat.yozmoq(oziq-ovqat); // Sut, non, non pishirib ko'ring »

Esda tutingki, usul argumentlarsiz chaqirilganda join() usuli bilan bir xil qatorni aylantiradi.

indexOf va lastIndexOf

indexOf usuli element indeksini aylantiradi, uning qiymati argument sifatida usulga berilgan qiymatdan yuqori.

indexOf() va lastIndexOf() usullari sintaksisi:

Array_name.indexOf(search_element, index) array_name.lastIndexOf(search_element, index)

Usulning birinchi argumenti indeksini bilishingiz kerak bo'lgan elementning qiymatini belgilaydi, boshqa argument (ixtiyoriy) qidiruv boshlanadigan indeksni belgilaydi. Agar boshqa yozuvlar bo'lmasa, eng kichik (birinchi) indeks tanlanadi. Agar kerakli qiymatlarga ega element topilmasa, aylanish usuli -1 ga teng. Usulning o'rtasida vikoristovuetsya suvore povnyannya (===) ni qidiring.

Var a =; a.indexOf(3); //Rotate 2 a.indexOf(3,4); //Rotate 6 a.indexOf(35); //Teskari -1: bunday qiymatlarga ega element yo'q a.indexOf(2); // 1

lastIndexOf() usuli element indeksini ham aylantiradi, uning qiymati argument sifatida metodga berilgan qiymatdan oldingi. Yagona farq shundaki, lastIndexOf() usuli eng katta (qolgan) indeksni tanlaydi.

Var a =; a.lastIndexOf(3); //7 ni aylantirish a.lastIndexOf(35); //Reverse -1: bunday qiymatlarga ega element yo'q a.lastIndexOf(2); // 6

Iterator usullari

p align="justify"> Quyida tasvirlangan usullar iteratorlardir. Hamma joriy brauzerlar Massivlar bilan ishlashda elementlarni takrorlash va ular ustida turli amallarni bajarish uchun foydalaniladigan usullar mavjud. Bu usullar forEach(), map(), filter(), every(), some, reduce() va reduceRight().

Siz massiv elementlarini 0 dan uzunlik - 1 gacha takrorlaysiz va har doim element mavjud bo'lganda, uni qayta qo'ng'iroq qilish funktsiyasiga o'tkazing.

har biriga

Usul sintaksisi:

Im_array.forEach(qayta qo'ng'iroq, thisArg)

Birinchi argument qayta qo'ng'iroq qilish funktsiyasidir va forEach() usuli teri elementini massivga chaqiradi. Siz o'zingiz uchun qo'ng'iroq qilgan namuna oluvchi funktsiyasini amalga oshirishni yozishingiz kerak. Chaqiriladigan funksiya uchta parametrni oladi: birinchi parametr argument sifatida massiv elementining qiymatini oladi, ikkinchisi element indeksini, uchinchisi esa massivning o‘zini oladi. Biroq, agar siz qiymatsiz massivni tanlashingiz kerak bo'lsa, siz faqat bitta parametr bilan funksiya yozishingiz mumkin. Yana bir dalil - thisArg (til bo'lmagan) bu qiymat sifatida qabul qilinadi.

Var arr =; funktsiya foo(qiymat) (var summa = qiymat * bu; hujjatni qaytaring.write (sum + "
"); ) arr.forEach(foo, 5); //boshqa argument bu qiymat sifatida uzatiladi //uchta parametrli misol var a = ; a.forEach(function(el, idx, a) ( hujjat. write( " a["+idx+"] = "+el+" y ["+a+"]
"); )); Urunib ko'r "

filtr

Usul sintaksisi:

Im_array.filter(qayta qo'ng'iroq, thisObject)

filter() usuli massivda boshqa elementlarni o'z ichiga olmaydigan yangi massivni yaratadi va aylantiradi, buning uchun qayta qo'ng'iroq qilish funksiyasi rost qiymatini qaytaradi.

Function isBig(element, index, array) ( //10 dan katta yoki teng bo'lgan raqamlarni aylantiring (element >= 10); //10 dan katta yoki teng bo'lgan har qanday element qiymati rostga aylanadi ) var filtered = .filter( katta); //filtrlangan

xarita

map() usuli massivning teri elementi uchun qayta qo‘ng‘iroq qilish(item, idx, ar) funksiyasini chaqirish natijalaridan hosil bo‘lgan yangi massivni yaratadi va aylantiradi.

Var a =; var b = a.map(funktsiya (element, idx, arr) ( element * elementni qaytarish; )); // b =

har bir va ba'zi

Every() usuli, agar massivning barcha elementlari uchun tekshirish uchun ishlatiladigan funksiya ko'rsatilgan bo'lsa va true qiymatini qaytarsa, true qiymatini qaytaradi.

some() usuli rostga aylanadi, chunki tayinlangan funksiya tekshirilganda bir yoki bir nechta element rost boʻladi.

Var a =; a.every(funksiya(x) (qaytish x 10; )) //to'g'ri: bitta raqam > 10

kamaytirish va kamaytirish O'ng

Usul sintaksisi:

array_name.reduce(qayta qo'ng'iroq, initialValue) array_name.reduceRight(qayta qo'ng'iroq, boshlang'ichValue)

Reduction() usuli belgilangan funksiyani (qayta qo'ng'iroqni) massivning atigi ikkita qiymati bilan to'xtatib qo'yadi, chapdan o'ngga elementlar bo'ylab takrorlanadi va oraliq natijani o'zidan saqlaydi.

Qayta qo'ng'iroq qilish funktsiyasi argumentlari: (Val, joriy, indeks, massiv bilan ifodalanadi)

  • oldingiValue - qayta qo'ng'iroq qilish funktsiyasining natijasini aylantiradi (shuningdek, oraliq natija)
  • currentItem - massivning joriy elementi (elementlar chap-o'ng qo'llar orqali takrorlanadi)
  • indeks - oqim elementining indeksi
  • massiv - to'planishi kerak bo'lgan massiv

initialValue - qayta qo'ng'iroq qilish funktsiyasining birinchi chaqiruvining birinchi argumenti sifatida ishlatiladigan ob'ekt. Oddiy qilib aytganda, birinchi marta bosishda oldingi qiymatning qiymati kob qiymatiga o'xshaydi. Kob qiymati yo'qligi sababli, u massivning birinchi elementi bilan bog'liq va qidiruv boshqasidan boshlanadi:

Var a =; funktsiya foo(prevNum,curNum) ( sum = prevNum + curNum; alert(sum); qaytariladigan summa; ) var result = a.reduce(foo, 0); hujjat.yozish(natija); Urunib ko'r "

Keling, bu dumba qanday ishlashini aniqlaylik. foo funksiyasining birinchi argumentlari:

  • prevNum = 0 (parchalar boshlang'ichValue - 0)
  • curNum = 1 (oqim elementi - birinchi massiv elementi)

0 1 ga qo'shiladi. Bu natija (yig'indi: 1) qachon prevNum sifatida uzatiladi yaqinlashib kelayotgan ishga tushirish funktsiyalari. Qolgan elementga etguningizcha va hokazo. Qaytarilgan natija 15 (1+2+3+4+5) bo'lib, qolgan yugurish yig'indisidir.

ReduceRight usuli kamaytirish usuliga o'xshash ishlaydi, faqat o'ng-chap qo'l qatoridan tashqari:

Var a = ["h", "o", "m", "e"]; funksiya satri(prevStr, curItem) ( prevStr + curItemni qaytarish; ) document.write(a.reduceRight(bar)); //emoh

U JavaScript vidality massivi elementi bir qancha usullardan foydalanish mumkin. Ularni pop va shift usullari yordamida ko'rish mumkin. Pop usuli birinchi elementni olib tashlaydi massivi berilgan. Shift usuli berilgan massivdan qolgan elementni olib tashlaydi.

Agar siz ushbu massivdan barcha elementlarni olib tashlashingiz kerak bo'lsa, massivning oxiriga 0 qo'yishingiz mumkin. Qo'shiq elementini ko'rish uchun yana nima kerak?

Masalan:

Array_name.splice(indeks);

Massiv_nomi.oʻchirish

Bundan tashqari, birlashma usulidan ham foydalanishingiz mumkin. Vin uzoq elementlarning yangi qatorini aylantiradi. Va kob massivi yo'qolgan elementlardan o'ch oladi.

JavaScript-ni qo'shish usuli va qo'shiq elementlarini olib tashlashning boshqa usullaridan qanday foydalanishni o'rganish uchun demoni tomosha qiling.

Splice usuli yordamida muayyan elementni namoyish qilish

Ushbu demo versiyasi raqamlar qatorini yaratadi. Dastlab, massivga beshta element qo'shiladi. Shundan so'ng, uchinchi elementni olib tashlash uchun ulash usuli qo'llaniladi. Shunday qilib, JavaScript-ning o'zi massivning birinchi elementini ko'rsatishi mumkin.

Elementlar raqamli massiv JavaScript splice usulini ishlatishdan oldin va keyin quyidagi tartibda ko'rsatiladi:

Splice usuli bilan JavaScript kodi:

Siz ikkita parametrli massiv uchun JavaScript elementini tanlaganimni ta'kidladingiz. Birinchisi o'chirilishi kerak bo'lgan elementning indeksini ko'rsatadi. Boshqasi - ko'rsatilgan kalitdan keyin qancha elementlarni o'chirish kerak.

Joriy demo versiyasi boshqa parametrni tanlaganimizda variantni ko'rsatadi.

Agar boshqa parametr JavaScript splice usuliga kiritilmagan bo'lsa, nima uchun bezovtalanish kerak?

Xuddi shu kodning Vikoristannya, lekin boshqa parametrsiz, ulash usuli:

Arr_Numbers.splice(2);

Kod va natija:

Onlayn demo versiyasini va kodini ko'ring

Ko'rib turganingizdek, ko'rsatilgan indeks raqamidan oldingi barcha elementlar o'chirildi. Bundan tashqari, birlashma usuli uzoq elementlarning qatorini aylantiradi.

JavaScript kodi:

Massiv elementini o'chirish uchun foydali o'chirish funksiyasi

Bundan tashqari, JavaScript massivdagi elementni o'chirishi uchun siz o'chirish funksiyasidan foydalanishingiz mumkin. Biroq, bu bo'sh joyni saqlaydi va agar siz ushbu massivni tanlash funksiyasidan keyin aylantirsangiz, o'chirilgan element aniqlanmagan sifatida paydo bo'ladi.

Keling, o'chirish funksiyasiga ega bo'lgan demo versiyasini ko'rib chiqaylik:

Onlayn demo versiyasini va kodini ko'ring

JavaScript kodi:

Qo'shimcha funktsiyani bosgandan so'ng uchinchi element uchun undefined ko'rsatilishini ko'rishingiz mumkin o'chirish .

JavaScript sotuvchilari orasida ikkala usul o'rtasida keng farqlar mavjud. Nima muhimligini bilasizmi? tilim ko'rinish qo'shish?

Ushbu usullar JavaScript massividan foydalanish kerak bo'lganda uni tushunish o'rniga uni qismlarga ajratish uchun mo'ljallangan. tilim, va agar qo'shish topish qiyin bo'lgan rahm-shafqatga olib keladi. Keling, ikkita usulni batafsil ko'rib chiqaylik, shunda farq aniq bo'ladi.

Slice - rejimi va yaratish

Inglizcha so'z tilim"kesish" deb tarjima qilingan. Rostini aytsam, men spetsifikatsiyani ishlab chiquvchilar nima qilayotganini tushunmayapman, lekin siz JS-dan so'zlarning tarjimasiga tayanolmaysiz. ECMAScript 5.1 spetsifikatsiyasi, usuli bilan mos keladi tilim ikkita argumentni oladi: end va end indekslari. Keyin eskisining elementlarini bosh indeksdan oxirgi indeksgacha joylashtirish uchun yangi massiv yaratiladi. Eng muhimi, yangi massiv yaratilmoqda. Turg'un bo'lish darajasiga qadar massiv, o'zidan mahrum bo'lish usuli. Shuni unutmangki, boshqa parametr elementlar sonini emas, balki yakuniy indeksni bildiradi, shuning uchun boshqa parametr har doim kattaroq uchun javobgar bo'ladi, aks holda bo'sh massiv qaytariladi. Keling, bir ko'rib chiqaylik.

Var a =; console.log(a); // var b = a. tilim(3, 5); console.log(a); // console.log(b); // var c = a. tilim (4, 2); console.log(a); // console.log(c);//

JSda har doimgidek, faqat nimani eslab qolish kerak tilim sizga belgilangan kob indeksidagi elementlarni qaytaring ( shu jumladan ushbu elementning o'zi ) va belgilangan yakuniy indeksga, lekin oxirgi elementsiz .

Splice - rejim va bo'linish

Ingliz tilidan qo'shish- Kutib turing. Yana so'z va harakat usuli o'rtasidagi bog'liqlik ko'rinmaydi. Splice ning asosiy yordami shundaki, u chiqish massivini o'zgartiradi. Usulning o'zi bosh va oxirgi indeksni qabul qiladi, shuning uchun chiqish massivingiz kesilgan elementlar bo'lishini yodda tuting.

Var a =; console.log(a); // var b = a.splice (3, 5); console.log(a); // console.log(b); // var c = a.splice (4, 2); console.log(a); // console.log(c); //

Va yana, siz faqat nimani eslab qolishingiz kerak qo'shish Belgilangan kob indeksidan massiv allaqachon chiqarilgan ( shu jumladan elementning o'zi ) va belgilangan yakuniy indeksga ( elementning o'zini ham o'z ichiga oladi ). Ushbu usul bilan siz kesilgan barcha elementlarni aylantirasiz va ularni zarardan qutqarishingiz mumkin.

Birlashtirish usulidan massivdagi elementlarni qo'lda tanlash uchun ham foydalanish mumkin. Boshlang'ich o'chirish a nima ekanligini taxmin qilaylik; elementning o'zini ko'rmang, lekin uni aniqlanmagan joyga kiriting. Elementni ko'rish uchun vikorystuvati a.splice (1, 1) dan chiroyliroqdir;

Var a =; o'chirish a; console.log(a); // var a =; a.splice(1, 1); console.log(a); //

Qolganlarini hurmat qilaman Google versiyalari Chrome konsoli Men sizga birinchi marta quyidagi natijani ko'rsataman: . Albatta, u shunchaki aniqlanmagan elementni ko'rsatmadi, chunki haqiqiy narsa hech qachon sodir bo'lmagan.

Amalga oshirilgan JavaScript usullarining barcha foydaliligini faqat ularning qanday ishlashini tushunish orqali to'g'ri baholash mumkin. Ushbu maqolada biz uchta usulni ko'rib chiqamiz: tilim(), splice()і Split(). Mutaxassislarning fikriga ko'ra, ular ko'pincha ularni chalkashtirib yuborishadi: ehtimol, uchta ismning o'xshashligi tufayli.

Talabalar va yangi boshlanuvchilar: iltimos, ushbu maqolani diqqat bilan o'qing - ushbu uchta usul haqida sizdan spivbeside so'rashi mumkin.

Nihoyat, siz uchta usul haqida qisqacha ma'lumot topasiz. Qani boshladik.

JavaScript-da Masivi

Avval JavaScript bilan ishlashni o'rganishingiz kerak. Boshqa tillarda bo'lgani kabi, massivlar bir nechta ma'lumotlarni saqlash uchun ishlatiladi. Farqi shundaki JavaScript massivlari bir vaqtning o'zida bir nechta ma'lumotlar turlarini sig'dira oladi.

Bunday massivlar bilan ishlash uchun bizga JavaScript usullari kerak: masalan, tilim() & splice(). Siz shunday massiv yaratishingiz mumkin:

arrayDefinition = bo'lsin; // JS da massiv deklaratsiyasi

Endi biz har xil turdagi ma'lumotlardan foydalangan holda boshqa massiv yaratishimiz mumkin:

Massiv =;

JavaScript-da siz massivlarni yaratishingiz mumkin turli xil turlari ma'lumotlar: raqamlar, qatorlar va mantiqiy qiymatlar bilan.

Slice()

Usul tilim() massivning belgilangan qismini nusxalaydi va ko‘chirilgan qismini yangi massivga o‘xshatish uchun aylantiradi. Kob massivi o'zgarmaydi.

Massiv.tilim(dan,gacha);

  • Ko'rinish: Massivni kesishni boshlash h kimning elementi
  • Qachon: Massivni ushbu elementga ajratadi

Masalan, men berilgan massaning dastlabki uchta elementini kesib tashlamoqchiman. Massivning birinchi elementi dastlab 0 sifatida belgilanadi, shuning uchun parametr sifatida dan Men 0 ni belgilayman.

Massiv --> 1 // kiritilgan massiv --> 2 // kiritilgan massiv --> 3 // kiritilgan massiv --> "salom dunyo" // kiritilmagan

Bu yerda adashib qolishingiz mumkin! Axis nega men ovoz berdim "qa qadar".

newArray = array.slice(0, 3); // Qaytish qiymati ham massivdir

Men yangi massiv yaratishga va uni o'zgartirish bilan to'qishga qaror qilaman newArray. Keling, natijani ko'rib chiqaylik:

Massivni kesish va yangi massivga elementlar qo‘shish


newArray o'zgarishi yangi massivga aylanadi, asl massiv o'zgarishsiz yo'qoladi.

Muhim eslatma: usul Slice() vikorist qilishingiz mumkin qatorlar.

Splice()

Ushbu usulning nomi shunga o'xshash tilim(): Bunday o'xshash nomlar bilan paxtakorlar ko'pincha chalkashib ketishadi. Usul splice() massivga elementlarni qo'shadi va o'chiradi; yogoni o'zgartirish. Keling, ushbu qo'shimcha usulga elementlarni qanday qo'shishimiz va ko'rsatishimiz mumkinligiga hayron bo'laylik. splice():

Elementlar turi

Elementlarni ko'rish uchun chop etishingiz kerak bo'lgan elementni kiriting ( indeks) o'chirilishi kerak bo'lgan juda ko'p elementlar (Elementlar soni):

Array.splice(indeks, elementlar soni);

Parametr Indeks-Tse kob nuqtasi elementlarni tanlash. Seriya raqami bo'lgan elementlar Ozroq belgilangan Indeks parametri ko'rinmaydi:

Array.splice(2); // Indeks 2 dan boshlangan har bir element o'chiriladi

Agar siz boshqa parametrni belgilamasangiz, ko'rsatilgan Index parametri ostidagi barcha elementlar oxirigacha o'chiriladi:

Boshqa ko't sifatida men boshqa parametr sifatida 1 ni kiritdim: shu tarzda, har safar usulni takrorlaganda splice() Siz boshqasidan boshlab bir vaqtning o'zida bitta elementni ko'rasiz:

Array.splice(2, 1);

splice() usulidan oldingi massiv

Splice() tabureti bir marta:

3-element ko'rinadi: yaxshi, endi "salom dunyo" elementida 2 seriya raqami mavjud

Splice () dvichi:

Bu safar "salom dunyo" elementi bor edi, shuning uchun uning seriya raqami 2

Shunday qilib, seriya raqami 2 bo'lgan elementlarni yo'qotmaguningizcha chaynashni davom ettirishingiz mumkin.

Elementlarni qo'shish

Qo'shimcha yordam uchun elementlarni qo'shing splice(), ularni uchinchi, to'rtinchi va beshinchi element sifatida kiritish kerak (qancha element qo'shilishi kerakligiga qarab):

Array.splice(indeks, elementlar soni, element, element);

Yak dumba, dodamo elementi aі b massivda:

Array.splice(0, 0, "a", "b");


Kob massiviga qo'shilgan a va b elementlar

Split()

Usullari Slice()і splice() massivlar uchun vikolist. Usul Split() Vikorist uchun qatorlar. U qatorni qatorlarga ajratadi va massiv hosil qilish uchun ularni aylantiradi. Bu usul 2 ta parametrga ega va men ulardan nafratlanaman obov'yazkovo ekspress emas.

String.split(ajratuvchi, chegara);

  • Ajratuvchi: Bu qatorning sub-kontraktlarga qanday bo'linishini anglatadi: koma, belgi va boshqalar.
  • Cheklov: berilgan raqamga ega qatorlar soni o'rtasida

Usul Split() o'rtada ishlamaydi massivlar. Vaqt bundan kam emas, endi usul muzlatilgandan keyin ham massiv elementlarini qatorlarga aylantirishingiz mumkin. Split().

Keling, bu qanday ishlashini ko'rib chiqaylik.

Bundan buyon massiv qo'shimcha usul yordamida ketma-ket eriydi toString():

myString = array.toString();

Keyin qatorni ajratamiz myString komami va shartnomalar soni cheklangan uchoh. Keyin qatorlarni massivga aylantiramiz:

newArray = myString.split(",", 3);

Massivning dastlabki 3 ta elementi aylangan

Shu tarzda massivning elementlari myString koma bilan ajralib turadi. Biz chegarani 3 qatorga o'rnatdik, shuning uchun dastlabki 3 ta element aylanib chiqdi.

Eslatma: Vikoristlar jamoasi array.split(""); Bir qatordagi barcha belgilarni pastki qatorlarga bo'lish mumkin.


Barcha belgilar subpudratlarga bo'linadi

Annotatsiya:

Slice()

  • Elementlarni massivdan nusxalaydi
  • Uni yangi massivga aylantiradi
  • Asl massivni o'zgartirmaydi
  • Qo'shimcha parametrlar yordamida massivni dan vagacha ajratadi: massiv.tilim (dan,gacha)
  • Parametrni, vazifalarni o'z ichiga olmaydi "qa qadar"
  • Ikkala massivda ham, qatorlarda ham vikorist

Splice()

  • Massivga elementlarni qo'shadi va o'chiradi
  • Uzoq elementlar massivini aylantiradi
  • Massivni o'zgartiradi
  • Elementlarni qo'shish: massiv.splice(indeks, elementlar soni, element)
  • Elementlar turi: massiv.splice(indeks, elementlar soni)
  • Vikorist massivlardan mahrum

Split()

  • Qatorlarni pastki qatorlarga ajratadi
  • Ularni massivga o'xshatish uchun aylantiradi
  • 2 parametr va ular haqida haqorat bildirish shart emas: string.split(ajratuvchi, chegara)
  • Asl qatorni o'zgartirmaydi
  • Vikoristlar qatorlardan mahrum

JavaScript-da massivlar va qatorlar bilan ishlashning boshqa ko'plab usullari mavjud. Ulardan qanday foydalanishni o'rgansangiz, dasturlash ancha soddalashadi.

Massiv elementlarini kiritadi, o‘chiradi yoki almashtiradi.

Xususiyatlari: ECMAScript 3 versiyalari.

Sintaksis

Array.splice(start, deleteCount, element1, element2, ..., elementN)

Parametrlar

boshlash Massiv elementi olib tashlanadigan va/yoki qo‘shiladigan massiv elementining indeksi. Salbiy qiymatlarni almashtirishga ruxsat beriladi, har bir indeks uchun usul quyidagi formula bo'yicha hisoblanadi: uzunlik (massivga qo'shish) + start . o'chirish Count Neobov'yazkove ma'nosi. startda ko'rsatilgan indeksdan boshlab massivga qo'shiladigan elementlar sonini ko'rsatadigan butun son. DeleteCount eskimi? 0 keyin elementlar ko'rinmaydi. deleteCount qiymati nima? ko'proq miqdor massivda yo'qolgan elementlar, keyin barcha elementlar massiv oxirigacha o'chiriladi. Salbiy ma'nolarga yo'l qo'yilmaydi. elementN Neobov'yazkove ma'nosi. Massivga qo'shiladigan elementlar. Agar siz elementni ko'rsatmasangiz, splice() oddiygina elementlarni massivdan olib tashlaydi.

Aylanadigan narsaning ma'nosi

Yangi massiv o'chirilgan elementlarni o'z ichiga oladi (xuddi shunday). Agar siz faqat bitta elementni ko'rgan bo'lsangiz, bitta element qatorini aylantiring. Elementlar ko'rinmasligi bilanoq, bo'sh massiv aylanadi.

Tavsif

Usul splice() joylashuvi argument boshlanishi bilan ko'rsatilgan elementdan boshlab, ko'rsatilgan massiv elementlarining sonini ko'rsatadi, shu jumladan, va uni argumentlar ro'yxatida keltirilgan qiymatlar bilan almashtiradi (element1, ..., elementN). Massivning elementlari kiritilgan yoki olib tashlangan, kiritilgan elementlardan keyin kengaytiriladi va massiv bilan uzluksiz ketma-ketlikni yaratadi.

Eslatma: O'xshash nomli usuldan farqli o'laroq, slice(), splice() usuli to'g'ridan-to'g'ri massivni o'zgartiradi.

Uni qo'llang

Usul splice() kabi ko'rinadi 0 indeks ortidagi elementlar 2 Va "Limon" qo'shiladi:

bitta indeksdan keyin element 3 :

Joriy ilovada splice() usuli olib tashlanadi bitta indeksdan keyin element 2 u "Kivi" ni kiritadi.

© 2022 androidas.ru - Android haqida hamma narsa