Internet Derazalar Android
Kengaytirmoq

JQuery RELETE ASRAY elementi qiymati bo'yicha. Muayyan JavaScript massiv elementini qanday o'chirish kerak? Bir qator elementni olib tashlash uchun o'chirish funktsiyasidan foydalanish

siljish

Massivning birinchi elementini olib tashlash uchun foydalaning.

Masalan:

Var Arra \u003d; Array.shift ();

massiv quyidagilarga olib keladi:

Masalan:

Var Arra \u003d; Array.pop ();

massiv quyidagilarga olib keladi:

Ikkala usul ham uzoq elementni qaytaradi;

chayqalish

Massivdan bir qator elementlarni olib tashlash uchun foydalaning. .SPLES () Ikki parametrni, boshlang'ich indeks va olib tashlash uchun qo'shimcha elementlar sonini oladi. Agar ikkinchi parametr bo'lmasa, () Acrey oxirida boshlang'ich indeksdan barcha elementlarni o'chiradi.

Masalan:

Var Arra \u003d; massiv) (1, 2);

mavrubni o'z ichiga oladi:

Qaytish massivi.splits () masofaviy elementlarni o'z ichiga olgan yangi qator. Yuqoridagi misolda, qaytarib berish quyidagicha bo'ladi:

Shunday qilib, ikkinchi parametrni pasaytirish, belgilangan indeksga dastlabki tugash bilan ikki qatorga teng ravishda amalga oshiriladi:

Var Arra \u003d; massiv) (2);

Barglari bo'lgan va qaytish joylari.

o'chirmoq

Bir qatorni olib tashlamasdan, qatordan elementni olib tashlash uchun Yo'q qilish uchun o'chirish:

Var Arra \u003d; Konsol.log (massiv); // 5 delete massiv; Konsol.log (qator); // konsol.log (massiv); // besh

Massiv.pototep.length.

Uzunlik qiymatini belgilash uzunligini belgilangan qiymatga o'zgartiradi. Agar yangi qiymat massiv uzunligidan kam bo'lsa, elementlarning oxiridan olib tashlanadi.

Massiv \u003d; Array.length \u003d 2; Konsol.log (qator); //

JavaScript. Operatorni o'chirish. Ob'ektdan mulkni olib tashlaydi; Agar boshqa bir mulkka murojaat qilmasa, u oxir-oqibat avtomatik ravishda chiqariladi.

Ushbu interfaol misol uchun manba Github omborida saqlanadi. Agar siz "D" siz interfaol misollarni keltirib chiqarsangiz, iltimos, iltimos, iltimos, https://github.com/githAram.com/mdn/dithactiveexamellar va bizga tortishuv so'rovini yuboring.

Sintaksis

O'chirish. ifoda

Var bilan belgilangan har qanday o'zgaruvchan sozlanmagan deb belgilangan. Keyingi misolda ish haqi sozlanmaydi va o'chirib bo'lmaydi. Qattiq bo'lmagan rejimda o'chirish noto'g'ri ishlov berish noto'g'ri.

Funktsiya xodimi () (ish haqi; var maosh;) xodim ();

Xuddi shu kodning qat'iy rejimda qanday harakat qilayotganini ko'raylik. Bu noto'g'ri qaytish o'rniga, bayonotni qo'shishni kuchaytiradi.

"Qattiq ishlatish"; Funktsiya xodimi () (ish haqini o'chirish; // sintacherrror var mayin ish haqi, har qanday funktsiyaga to'g'ridan-to'g'ri kirish vositasi () o'chirish vositasi (//) o'chirish vositasini o'chiradi; // sintapecrror.

Misollar.

// global miqyosda mulk xizmatini yaratadi. MerxName \u003d "Xyz"; // global miqyosdagi mulknimikini yaratadi. // Biz Var-dan foydalanayotganimizdan, bu sozlanmagan deb belgilangan. Xuddi shu narsa, retset va konst. Var SpCcunt \u003d 43; XodimlarEteils \u003d (Ism: Ism: "XYZ", Yoshi: 5, "Ishlab chiqaruvchi"); // Merxxame global miqyosdagi mulk. // Uni o'chirib tashlash mumkin, chunki u varsiz yaratilgan, shuning uchun sozlanadi. Delete Mermint nomini o'chiring; // Haqiqiy // aksincha, BMPCunt sozlanmagan // juda ko'p ishlatilgan. Chekkete-ni o'chiring; // Soxta // Yo'qotish ob'ektlardan xossalarini olib tashlash uchun foydalanish mumkin. ish bilan ta'minlanganidan voz kechish; // haqiqatni qaytaradi. // Mulk mavjud bo'lmagan taqdirda ham, "TRUE" ning qaytishlarini o'chirib tashlang. Xodimlarni o'chirish.sali; // haqiqiy qaytish // Yo'qe o'rnatilgan statik xususiyatlarga ta'sir qilmaydi. Matematika matect.pi; // Soxta // MouseTedAlens-ni qaytaradi. // U "xil" bo'lmaganligi sababli, u sozlangan. Xodimlar tomonidan o'chirish; // haqiqiy funktsiyani qaytaradi f () (var z \u003d 44; // Yo'q qilish "Delete" Delete "Delete z" ning ismi delete z; // qaytaradi)

o'chirish va prototip zanjiri

Keyingi tekshiruvda biz ob'ektning o'z mol-mulkini o'chirib tashlaymiz, bir xil nomga ega bo'lgan mulk prototip zanjirida mavjud bo'lsa, quyidagicha:

Funktsiya Foo () (bu.bar \u003d 10;) foo.propototep.bar \u003d 42; Var Foo \u003d yangi foo (); // FOO.BAR o'z mulkingiz bilan bog'liq. Konsol.log (foo.bar); // 10 // o'z mulkini // foo ob'ektida o'chiring. FOO.BARni o'chirish; // haqiqiy // foo.bar hali ham // prototip zanjirida mavjud. Konsol.log (foo.bar); // 42 // Prototipda mulkni o'chirib tashlang. foo.prototepe.bar; // haqiqiy qaytish // "bar" mulk endi fou / o'chirilganidan beri meros qilib olinadigan // meros qilib bo'lmaydi. Konsol.log (foo.bar); // aniqlanmagan.

Massiv elementlarni o'chirish.

Bir qator elementni yo'q qilganingizda, massiv uzunligi ta'sir qilmaydi. Agar massivning oxirgi elementini o'chirsangiz ham, bu ushlab turing.

Elektr operatori qator elementni olib tashlaganida, bu element endi qatorda bo'lmaydi. Keyingi misolda, daraxtlar o'chirilgan holda daraxtlar chiqariladi.

Var Daree \u003d ["Redvud", "Sear", "Sear", "Maple"]; Daraxtlarni o'chirish; Agar (3 ta daraxtlarda) (// bajarilmagan)

Agar siz massiv elementi mavjud bo'lsa, lekin aniqlanmagan qiymatga ega bo'lsangiz, o'chirilmagan qiymatdan foydalaning. Keyingi misolda daraxtlar aniqlanmagan qiymatga ega, ammo massiv elementi hali ham mavjud:

Var Daree \u003d ["Redvud", "Sear", "Sear", "Maple"]; Daraxtlar \u003d aniqlanmagan; Agar (3 daraxtlarda) (// bajarilgan)

Agar buning o'rniga, massiv tarkibini o'zgartirish orqali qator elementni olib tashlamoqchi bo'lsangiz, bo'linish usulidan foydalaning. Keyingi misolda, bo'linishdan butun masladan chiqariladi:

Var Daree \u003d ["Redvud", "Sear", "Sear", "Maple"]; Daraxtlar.splekt (3.1); Konsol.log (daraxtlar); // ["Redwood", "Bay", "Sear", "Maple"]

Texnik xususiyatlar.

Spetsifikatsiya Holat. Sharh
Eciscript so'nggi loyihasi (ECMA-262)
Qoralama.
ECMASCRICR 2015 (6-nashr, ECMA-262)
Ushbu spetsifikatsiyada "o'chirish operatori" ta'rifi.
Standart
ECSCRICT 5.1 (ECMA-262)
Ushbu spetsifikatsiyada "o'chirish operatori" ta'rifi.
Standart
Eciscript 1-nashri (ECMA-262)
Ushbu spetsifikatsiyada "o'chirish operatori" ta'rifi.
Standart Dastlabki ta'rif. JavaScript 1.2da amalga oshirildi.

Brauzerning muvofiqligi

Ushbu sahifadagi moslik jadvali tuzilgan ma'lumotlardan yaratiladi. Agar siz "D" ma'lumotlariga hissa qo'shishni yoqtirsangiz, iltimos, HTTPS://github.com/brawser-bowser-cat-dadata-ni tekshiring va bizga tortishuv so'rovini yuboring.

Github-da moslik ma'lumotlarini yangilash

Ish stoli.MobilServer
Chrome.Chekka.Firefox.Internet Explorer.Opera.Safari.Android Warview.Android uchun xromAndroid uchun FirefoxAndroid uchun operaSafari iOS-da.Samsung InternetNode.J.
O'chirish.Chrome to'liq qo'llab-quvvatlash 1EDGE to'liq qo'llab-quvvatlash 12Firefox to'liq qo'llab-quvvatlash 1Ie to'liq qo'llab-quvvatlash 4Opera to'liq qo'llab-quvvatlash HaSafari to'liq qo'llab-quvvatlash HaWarview Android 1-ni qo'llab-quvvatlash 1Chrome Android to'liq qo'llab-quvvatlash 18Firefox Android-ni to'liq qo'llab-quvvatlash 4Opera Android to'liq qo'llab-quvvatlash HaSafari iOS to'liq qo'llab-quvvatlaydiSamsung Internet Android To'liq qo'llab-quvvatlash 1.0nodods to'liq qo'llab-quvvatlash Ha

Afsona.

To'liq qo'llab-quvvatlash To'liq qo'llab-quvvatlash

Cross-brauzer eslatmalari

Ecmaccript ATSERTH ASSSIYALARNING ATUSLARNING ASOSIY BERADI, HAMMA BIRINChI BIRINChI BIRINCHI BIRINChI BERMAYDI (Kamida prototipda bo'lmagan xususiyatlar uchun) iteratsiya tartibini qo'llab-quvvatlashi mumkin (hech bo'lmaganda prototipda emas). Biroq, Internet Explorer-da, bir nechta mulkni o'chirib qo'yganda, ba'zi bir brauzer natijalari, tartibli ob'ektlar kabi oddiy ob'ektlardan foydalanishning oldini olishning oldini oladi. Explorer, mulk esa qiymat. Haqiqatan ham aniqlanmagan bo'lsa, agar keyinchalik qo'shilgan bo'lsa, mulk bir xil nom bilan itariladi eski. Mulkni o'chirib tashlaganingizdan so'ng, iteratsion ketma-ketlik oxirida emas, keyin uni yana qo'shdi.

Men faqat massivlar bilan ishlash usullarining bir qismini tasvirlab berdim.

Bu erda biz massiv elementlarini olib tashlash, olib tashlash haqida gaplashamiz. Massivni kesish va tartiblash, shuningdek massivlarni kesish, almashtirish va birlashtirish haqida.

Bir qatorga elementlarni qo'shish.

Massivga yangi narsalarni qo'shish uchun siz uzunlikdagi mulkdan foydalanishingiz mumkin:

Var Myarray \u003d ["Apple", "Microsoft", "Google", "Facebook"]; Myarray \u003d "Yahoo!"; Konsol.log (ariarray); // [Apple, Microsoft "," Google "," Facebook "," Yahoo! "]

Bu ishlaydi, chunki Massivning elementlari noldan iborat va uzunligi. birlik uchun ko'proq. Uzunligi. Har doim teng indeks + 1.Shunday qilib, massiv oxiriga yangi element qo'shish juda oson. G'alati, lekin siz bir qatorga qatorning uzunligidan ancha katta bo'lgan joyga qo'shishingiz mumkin:

Var Myarray \u003d ["Jimi Hendrix", "Erik Clapton", "Jimmi", "Keyt Richards"]; Myrearray \u003d "Lindsi bukingham"; Konsol.log (ariarray); // ["Jimi Xendrix", "Erik Clapton", "Keyt Richard", "Keyt Richards", aniqlanmagan × lindy bukingem "] Konsol (Myarray.lengeng '); // 100

Izohlarda ko'rsatilganidek, 95 bo'sh joy va "Lindsey Bukingham" elementlari qatoriga qo'shilishadi. Shundan so'ng, biz 100 yilni olamiz. Massivga yangi element qo'shishning yana bir usuli - bu usuldan foydalanishdir durang ():

Var Myarray \u003d ["Pol Makkartni", "Jon Lennon", "Jorj Xarrison"]; myarray.push ("Ringo Starr", "Jorj Martin"); Konsol.log (ariarray); // ["Pol Makkarnining", "Jon Lennon", "Ringo Starrison", "Jorj Martin"]

Usul durang () Har doim massivning yangi uzunligini qaytaradi (bizning 5). Siz ishlatilgan elementni qo'shishingiz mumkin splity ():

Var Myarray \u003d ["Acorn", "Bechech", "Mongongo", "MacAdamia"]; Myarray.Splice (2, 0, "COPEVE"); // Indeks 2-sonli konsolga "kasborlik" qo'shadi. (Myarray); // ["AKOR", "CEPNOP", "CHESH", "Mongongo", "MacAdamia"]

Ikkinchi argument 0, bu hech qanday buyum olib tashlanmaydi, shuning uchun avvalgi argumentda ko'rsatilgan pozitsiyaga bir qatorga qo'shilishi mumkin.

Elementlarni massivdan olib tashlash

Elementni qo'shish uni qo'shishdan biroz murakkabroq. Bir qatorning oxiridan elementni olib tashlash uchun siz foydalanishingiz mumkin pop ():

Var Myarray \u003d ["7-UP", "Sprit", "zanjabil Alle", "limonad"]; myarray.pop (); Konsol.log (ariarray); // ["7-UP", "Sprit", "zanjabil ale"]

Usul pop () Har doim massivdagi oxirgi elementni olib tashlaydi va uni qaytaradi.

Siz ham foydalanishingiz mumkin splity () Usul:

Var Myarray \u003d ["Cassava", "Attmeg", "Lupin", "RhUBB"]; Myarray.Splic (2, 1); // 1-sonli konsol bilan elementni o'chirib tashlang (Myarray); // ["Cassasana", "Uy-joy", "RhUBB"]

Usuldan farqli o'laroq splic (), Ushbu elementlarni qo'shish uchun ishlatiladi, bu erda ikkinchi dalil 1 (yoki 3-indeks) bo'lgan elementni olib tashlamoqchi ekanligimizni aytadi. Bunday holda, "lupin" elementlari nafaqaga chiqdi.

Siz operator yordamida massiv elementni o'chirib tashlashingiz mumkin o'chirish:

Var Myarray \u003d ["Eliza", "Jeefo", "Michelanjelo"]; Konsol.log (Myarray.lray); // 4 Myarrayni o'chirish; // Eliza konsolini o'chirish (Myarray.lray); // 4 konsol.log (Myarray); // ["bayt bandit", aniqlanmagan × jeefo "," Michelanjelo "]

Birinchi muhim eslatma: o'chirish () Elementni olib tashlaganidan keyin massivning uzunligini o'zgartirmaydi (agar u massivdagi oxirgi element bo'lsa ham). Ikkinchi: o'chirish () O'chirilmagan mahsulotning qiymatini aniqlanmagan holda o'zgartiradi myarray \u003d aniqlanmagan..

Bir qator elementni olib tashlashning yaxshi usuli - YANGI TARJAIGINING Comrey-dan foydalaning. O'z sahifasidan foydalanish, foydalanishga misol ostida quyidagilar:

(Mit Litsenziyalangan) maskani olib tashlash \u003d Dan.< 0 ? this.length + from: from; return this.push.apply(this, rest); }; // Удаление 2 элемента из массива array.remove(1); // Удаление 2-ого элемента с конца массива array.remove(-2); // Удаление второго и третьего элемента array.remove(1,2); // Удаление последнего и предпоследнего элемента array.remove(-2,-1);

Siz virusli patelning qarorini, pastki qismida yoki jQuerering grep () funktsiyalaridan biri tomonidan qarorni ko'rishni xohlashingiz mumkin.

Ilg'or, B. JavaScript. Bir usul bor shift () Qaysi elementni massivdagi birinchi elementni olib tashlaydi va o'z qiymatini qaytaradi. Keling, kodni ko'raylik:

Var Myarray \u003d ["Matt Kramer", "Jeyson Bieler", "Tom defile", "Fil valyon"]; Konsol.log (Myarray.lray); // 4 Var uchtem \u003d Myarray.Shift (); Konsol.log (militsionem); // Matt Kramer konsol.Log (Myarray.lray); // 3 konsol.log (Myarray); // ["Jeyson Bieler", "Tom defile", "Fil Varone"]

Usuldan foydalanish shift () Biz buyumni o'chirib tashladik, ammo bizning fitnaning o'zgaruvchisiga o'z qiymatini saqlab qoldi. Massiv uzunligi 4 dan 3 gacha o'zgargan.

Ushbu usul usul bilan birgalikda foydali bo'lishi mumkin. durang (). Ulardan birgalikda foydalanish, biz massivdagi elementlarning navbatini samarali ravishda ishlab chiqarishimiz mumkin. Biz elementni boshidan olib tashlash orqali massivning uzunligini saqlaymiz va yangidan oxirigacha yangisini qo'shamiz.

Aksincha, biz usuldan foydalanishimiz mumkin ishonch () Bir qatorning boshiga elementni qo'shish uchun:

Var Myarray \u003d ["Apito", "Kastaniya", "MARAKA"]; Konsol.log (Myarray.lray); // 3 Myarray.unifift ("Sime Bar", "Tan-Tan"); Konsol.log (Myarray.lray); // 5 konsol.log (Myarray); // ["Sime Bar", "Tan-Tan", "Apito", "Kastaniya", "Maraka"]

Usuldan foydalanish ishonch () usul bilan pop () Siz elementlarning oxiridan boshlab elementlarni qo'shib, elementlarni qo'shib, qarama-qarshi yo'nalishda navbat yaratishingiz mumkin.

Massivning elementlarini burish va saralash.

Elementlarni massivda aylantirish uchun biz foydalanishimiz mumkin teskari ():

Var Myarray \u003d ["hisoblash", "Final", "" Konsol.log (ariarray); // ["hisoblash", "Final", ""] Myarray \u003d Myarray.Revversy (); Konsol.log (ariarray); // ["So'ngi ortga sanash"]

Alifbo tartibida qator elementlarini alifbo tartibida ishlating saralash ():

Var Ryarray \u003d ["ksilofonlar", "zebressias", "Juggernayts", "Avaroados"]; Konsol.log (ariarray); // ["ksilofonlar", "zebralar", "Juggernayut", "Avaddads" Myrearray \u003d Myarray.Sort (); Konsol.log (ariarray); // ["avakados", "Jaqagohlar", "ksilofonlar", "zebras"]

Ammo bu raqamlar bilan ishlamaydi.

Var Myarray \u003d; Konsol.log (ariarray); // myarray \u003d myarray.sort (); Konsol.log (ariarray); //

Agar raqamlarni tartiblashni xohlasangiz, quyidagi koddan foydalanishingiz mumkin:

Funktsiya taqqoslash vositasi (A, B) (A - B;) Var Myrray \u003d; Konsol.log (ariarray); // myarray \u003d myarray.sort (taqqoslash); Konsol.log (ariarray); //

Yuqorida ko'rsatilganidek, oddiy funksiyani ishlatib saralash () Raqamlarni o'z ichiga olgan qator to'g'ri tartiblanadi.

Massivlarni birlashtirish.

Biz 2 yoki undan ortiq qatorlarni birlashtiramiz va ulangan massivlar elementlarini o'z ichiga olgan 1 qatorni oling. Buning uchun usuldan foydalaning majburiy ():

Var Myarray \u003d ["Jey Fergyuson", "Endryu Scott"]; Var Myarray2 \u003d ["Kris Merfi", "Patrik Pentiland"]; Var MyNewarray \u003d Ryarray.concat (Myarray2); Konsol.log (mixewarray); // ["Jay Fergyuson", "Kris Merfi", "Patrik Pentiland"]

Var Myarray \u003d ["Jey Fergyuson", "Endryu Scott"]; Var MyNewarray \u003d Ryaray.Concat ("Kris Merfi", "Patrik Pentiland"); Konsol.log (mixewarray); // ["Jay Fergyuson", "Kris Merfi", "Patrik Pentiland"]

Massivni ajratish.

Funktsiyadan foydalanib, mavjud qatordan 1 yoki undan ortiq elementlarni o'z ichiga olgan yangi qatorni yaratamiz tsamlik ():

Var Myarray \u003d ["Vokal", "BASS", "Guitara", "Barabanlar", "Olma", "Ageglar"]; Var MyNewarray \u003d Myarray.slice (4); Konsol.log (mixewarray); // ["Olma", "apelsinlar"]

Usul tilim () 1 yoki 2 ta dalilni oladi. Agar 1 argument o'tkazilgan bo'lsa (indeks), keyin ushbu indeksdan boshlab eski barcha elementlardan yaratilgan. Agar 2 ta dalil bo'lsa, dastlabki argumentdan boshlab, elementning ikkinchi parametrida, balki ikkinchi parametrda, ikkinchi parametrda uzatiladigan ko'rsatkichdan boshlab elementlardan yaratilgan. Aniqroq bo'lish uchun quyidagi kodni ko'raylik:

Var Myarray \u003d ["Vokal", "BASS", "Guitara", "Barabanlar", "Olma", "Ageglar"]; Var MyNewarray \u003d Myarray.Slite (0, 4); Konsol.log (mixewarray); // ["vokal", "BASS", "Guitara", "Barabanlar"]

Elementlarni massivda almashtirish.

Biz foydalanamiz splity () Elementlarni olib tashlash uchun massivdan olib tashlash uchun, lekin biz elementni yangi buyumlar qatoridagi qatorda almashtirishimiz mumkin:

Var Myarray \u003d ["Cuomos", "Patrik Uilson", "Brayan Bell", "Matt Sharp"]; Myarray.Splice (3, 1, "Skot Shriner"); // 1 elementni indeks 3 ta konsol bilan almashtiring.log (Myarray); // ["Cuomos", "Patrik Uilson", "Skot Shriner"]

Usul splity () Doim o'chirilgan elementlarni o'z ichiga olgan qatorni qaytaring. 2-qatorda 1 ta "Brayan qo'ng'irog'i" elementlari qaytariladi.

Xulosa

Ushbu maqolalarda JavaScript qatorida ishlashni tasvirlab berdi. Ba'zi qo'shimcha elementlarni MDN-da ko'rish mumkin, men ushbu xabarda kiritilmagan. Ular faqat IE9 +da ishlaydi, shuning uchun ular foydasiz bo'lishi mumkin.

Qo'shadigan narsangiz bormi? Yoki massivlarni boshqarishga yordam beradigan biron bir qiziqarli kutubxonani bilasizmi? Sharh, iltimos!



Bir qator qiymatdan elementni qanday olib tashlash kerak? (yigirma)

// markkaki maslahat uchun tahrirlangan

buni sinab ko'ring:

Funktsiyasi kerakli (element, bit) (uchun (i bet)

umid qilamanki, bu sizga yordam beradi

JavaScript masofasidan elementni olib tashlashning bir usuli bormi?

Massivni hisobga olgan holda:

Var Ary \u003d ["uchta", "ettita", "o'n bir"];

Men quyidagi narsani qilishni xohlayman:

EditeceMmm ("ettita", ary);

Men rangni () ko'rdim, lekin bu faqat pozitsiyani o'chiradi, menda elementni qiymatidan olib tashlash uchun biror narsa kerak.

Sharh -SwitDoutDelyRay \u003d SharhlarNay.Filter ((sharh) \u003d\u003e! (Sharh.Id \u003d\u003d\u003d sharh));

Bu erda Inzar jQuery funktsiyasi qo'llanilgan versiya:

Var indeks \u003d $ .Inarray (element, massiv); Agar (indeks! \u003d -1) (Mavr.Split (indeks, 1);)

Siz ushbu funktsiyadan foydalanib erishishingiz mumkin Lodshi. _ -Remove.

var Arra \u003d ["uchta", "yetti", "o'n bir"]; Var Eynense \u003d _.remage (massiv, funktsiya (e) (ERE! \u003d\u003d "Etti";))); Konsol.log (ko'chirish);

Const _ \u003d talab ("lodash"); _.Ucout (, 2); // -\u003e

Haqiqatan ham, nima uchun hal qila olishning iloji yo'qligini tushunmayapman

CRE \u003d Arr.Filter (qiymat \u003d\u003e qiymat! \u003d\u003d "Etti");

Yoki ehtimol siz vanill JS-dan foydalanishni xohlaysiz

BRE \u003d Arr.filter (qaytish qiymati! \u003d\u003d "Etti"));

Boshqa variant:

Agar (! Arvrototepeemariearr bo'lsa) (ray.prototearr) (massiv) (agar (MARAY.IS.IS.Sisaray (Arm)) Arm (/ Ar'ce.isarray (Arm)) Armalanmagan qiymatni qo'ygan odamlarga yoqimli bo'lsin Bu erda. Bu men bo'lishi mumkin! AS-dan tashqari; agar (ar.length) (i \u003d 0; i) -1) (bu (i, 1);) boshqa ++; )) Buni qaytaring; )))

Ushbu indeksof () tsikl ichida yana bir bor, ammo tozalash uchun qatorlar tozalanishi kerak bo'lgan massivga nisbatan kichikdir. Har bir olib tashlash tsiklni kamaytiradi.

Bu sizga quyidagilarni bajarishga imkon beradi:

Var Ary \u003d ["uchta", "ettita", "o'n bir"]; Var aryuittseven \u003d ary.filter (qaytish qiymati \u003d "etti"))); Konsol.log (aryuntoutseven); // qaytish ["uchta", "o'n bir"]

Shuningdek, bu ipda yana bir joyda qayd etilgan: https: //.com/.com/293492

O'chirish opsiyasidan foydalanmang - bu massivda teshik qiladi, chunki u uzoq elementdan keyin elementlarni o'zgartirmaydi.

\u003e Arrrototepe.remove \u003d funktsiyasi (V) (... buni o'chirish ...); \u003e Var Myarray \u003d ["3", "24", "55", "2"]; aniqlanmagan\u003e Myarray.Remove ("55"); aniqlanmagan\u003e Myarray ["3", "24", "2"]

Bitta layner buni qiladi

Var Ary \u003d ["uchta", "ettita", "o'n bir"]; // "etti" elementini olib tashlash \u003d ary.filter (funktsiya (e) (Vazifa (E) (ERE! \u003d 'Etti »)) (" Etti ") / ECMAE6 Funktsiya Sintsis: Var Fir Som \u003d ary.filter (e \u003d\u003e e! \u003d\u003d "Etti")

Bu JS-da filtr funktsiyaidan foydalanadi. IE9 va undan yuqori darajasida qo'llab-quvvatlanadi.

filtr () Ortiqcha qo'ng'iroq xususiyatini bir marta massivdagi har bir element uchun bir marta bir marta yaratadi va qayta qo'ng'iroqning haqiqiyligiga olib keladigan qiymatni qaytaradigan barcha qiymatlarning yangi qatorini yaratadi. Qayta qo'ng'iroq faqat belgilangan qiymatlar bo'yicha qator indekslar uchun nomlanadi; U o'chirilgan yoki hech qachon qiymatga ega bo'lmagan indekslarga chaqirilmaydi. Callback testidan o'tmaydigan qator elementlar shunchaki o'tkazib yuboriladi va yangi qatorga kiritilmagan.

Shunday qilib, asosan, bu hamma uchun (ARY tugmachasidagi qo'shimcha) (...) echimlar, faqat IE6 sifatida qo'llab-quvvatlansa.

Aslida, filtr (va zanjir), dizaynerga o'xshamasligidan farqli o'laroq, qulaylik uslubidir.

Buni tekshiring:

Uchun (i massiv) (agar (IF (IF (i) \u003d 'etti ")

va funktsiyada:

Funktsiya Odingem (massiv, element) (agar (i, 1); tanaffus; sindirish;))) Tanlov;)

Barcha mos keladigan elementlarni massivdan olib tashlash (va bu bu erda eng keng tarqalgan ko'rinadiganidek):

Vaqt ($ .inarray (element, massiv)\u003e -1)\u003e 1), 1);)

Men qattiq mehnat uchun jquerydan foydalandim, lekin siz o'z ona tilingizga borishni xohlaysizmi, tushunasiz.

Hiyla-nayrang - bu boshidanoq boshidanoq o'tishdir, shuning uchun siz buyumlarni olib tashlashda indekslarni buzmaysiz.

Var Deeleteem \u003d Funktsiya (CRE I \u003d CASE) (i---) if.splits (i, 1);) b fors \u003d ["to'q sariq rang "," Qizil "," qora "," Orange "," oq "," to'q sariq "]; O'chirish (Arm, to'q sariq »);

endi arm ["qizil", "qora", "oq"]

Funktsiya TozaarraynErofpyPrterters (Live, Narxie, Narxi, funktsiyasi) (qiymat) (Indeks.Splitsi (indeks\u003e 1) (indeks, 1););) qaytarish;)

Foydalanish uchun ushbu bosqichlarni bajaring:

"Ko'r", "yo'q", "Yo'q", "Avval", "Oxirgi", "Keyingi", "itlar", "mushuklar"]; "Var SpitterMs \u003d [" Qo'ng'iroq "," LOG "," Itlar "," Mushuklar "," Mavzu "," ChICKING "," ChIQARISh "," ChIQARISh "," Chicking "," ChIQARISh "," ChIQARISh "," ChIQARISh "," ChIQARISh "," ChIQARISh "," ChIQARISh "," ChIQARISh "," ChIQARISh "," ChIQARISh "," ChIQARISh "," ChIQARISh "," ChIQARISh "," Chicking "," ChIQARISh "," ChIQARISh "," ChIQARISh "," ChIQARISh "," ChIQARISh "," ChIQARISh "," ChIQARISh "," ChIQARISh "," ChIQARISh "," ChIQARISh "," ChIQARISh "," ChIQARISh "]; TozaarRAFFIXTERSMS (Splitters, notekis)

Yuqoridagi J'raron funktsiyasidan foydalanishga harakat qildim, lekin men keyinchalik foydalanish uchun o'zgartirishlarsiz asl qatorni saqlashim kerakligini va yangi qatorni yaratishni aniqladim:

Var Newarray \u003d Mavzular;

What WhialReReMaem (massiv, element, yangi) (AS (Var i \u003d 0; i< array.length; i++) { if(array[i]!=item){ newArray.push(array[i]); } } }

Keyin men buni shunday ishlataman:

Var vselid \u003d Yozib olish.get.get ("TESTEDID"); Var ichretsels \u003d yangi massiv (); NearrRreweMiem (VESSELRR, INTELDID, ETHVERSESS);

Endi qirrarni buzilmay qoladi va har safar yuqoridagi kodni bajarganimda, Onherserels massivi qatoriga oxirgi katak elementi bundan mustasno.

indeksof bu variantdir, ammo uni amalga oshirish asosan ma'noni anglatadigan butun qatorni qidiradi, shuning uchun bajarilish vaqti massiv hajmini oshiradi. (Shunday qilib, bu har bir brauzerda, men faqat Firefox-ni tekshirdim deb o'ylayman).

Menda tekshirish uchun IE6 yo'q, lekin men buni har bir mijoz mashinasida deyarli kamida massivning kamida million elementlarini tekshirishingiz mumkin bo'lgan xavfsiz taklif deb atayman. Agar [massivning o'lchami] * [sekundiga qidirish so'rovlari] milliondan oshishi mumkin, siz boshqa amalga oshirishni ko'rib chiqishingiz kerak.

Asosan, siz manzilingiz uchun indeks yaratish uchun ob'ektdan foydalanishingiz mumkin, masalan:

Var indeks \u003d ("uchta": 0, "yetti": 1, "o'n bir": 2);

Har qanday oddiy JavaScript muhiti bunday xususiyatlarga ega bo'lishidan qat'i nazar, siz ushbu ob'ektlarni qiynalishingiz uchun qidiruv indeksini yaratadi.

Bu shunchaki asosiy usul bo'lib, sizning ehtiyojlaringizga qarab, siz bir xil ma'lumotlarni tezkor qilish uchun bir nechta ob'ektlar va / yoki qatorlarni birlashtirishingiz mumkin. Agar siz aniq ehtiyojlaringizni ko'rsatsangiz, men aniq ma'lumotlarning tuzilishini taklif qilishim mumkin.

// Ushbu funktsiyalar qatoridan bir qatorni olib tashlashga imkon beradi (New_ar \u003d funktsiyasi (A, B) (A - B ni qaytarish); uchun (i \u003d 0; i)< len; i += 1) { if (typeof elem === "object" && typeof arr[i] === "object") { if (arr[i].toString() === elem.toString()) { continue; } else { if (arr[i].sort(sort_fn).toString() === elem.sort(sort_fn).toString()) { continue; } } } if (arr[i] !== elem) { new_arr.push(arr[i]); } } return new_arr; }

Foydalanish namunasi

Var Cent \u003d, "ABC", 1, "1", 1]; Removhromar (CAR, 1); // ["2", "ABC", "1"] Var Cent \u003d [, 2, "A" ,,]]; Removeefromar (BRT,); //]

ACR \u003d; Konsol.log (arm); // natija indeks \u003d arranexof (30); Agar (indeks\u003e--1) (indeks, 1);) konsol (arm); // natijalari

Var indeks \u003d arra.indexof ("element"); Agar (indeks! \u003d - - 1) (Acr.Plit (indeks, 1););)