javascript- ը հեռացրեք տարրը զանգվածից

Զանգույցները JavaScript- ի ցանկացած մշակողի կյանքի կարևոր մասն է, քանի որ այն թույլ է տալիս օգտագործել մի քանի օբյեկտներ պահելու մեկ առարկայի մեջ.

Lyավոք, JavaScript- ը չի առաջարկում որևէ պարզ միջոց ՝ տարրերից զանգվածից դուրս բերելու համար: Թեև կան հեշտ գործառույթներ, ինչպիսիք են զետեղված () միավորը միավորելը, ուղղակի array.remove () գործիք չկա:.

Բարեբախտաբար, կան բազմաթիվ մեթոդներ, որոնք կարող եք օգտագործել JavaScript- ը տարրը զանգվածից հանելու համար.

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

  • Քայլ 1 – Հեռացրեք հատուկ տարրերը «Splice» գործառույթով
  • Քայլ 2 – Հեռացրեք տարրերը JavaScript- ի զանգվածի ավարտից փոփով ()
  • Քայլ 3 – Հեռացրեք տարրերը JavaScript- ի զանգվածի սկզբից հերթափոխով ()
  • Քայլ 4 – Օգտագործեք «’նջել» գործառույթը `զանգվածի առանձին օբյեկտները հանելու համար
  • Քայլ 5 – Գտեք և հեռացրեք հատուկ արժեքի տարր
  • Քայլ 6 – Գտեք և հեռացրեք միևնույն արժեքով բազմաթիվ տարրեր
  • Քայլ 7 – Հեռացրեք տարրերը `զանգվածը զտելով

Քայլ 1. Հեռացրեք զանգվածի տարրերը `« փչացնել »գործառույթով

Օգտագործելով «Splice» – ը անհատական ​​տարրը զանգվածից հեռացնելու ամենաընդարձակ ձևն է: Այն կարող է օգտագործվել զանգվածի ցանկացած դիրքի տարրերը հեռացնելու համար: Բացի այդ, դուք կարող եք նաև այն օգտագործել ՝ տարրերը զանգվածին վերադառնալու համար.

Splice գործառույթը տևում է չորս փաստարկ.

  1. Տեղադրությունը զանգվածի ներսում ՝ տարրերը հեռացնելու համար
  2. Քանի՞ տարր հեռացնել
  3. Էլեմենտներ ավելացնելու մեթոդ (ըստ ցանկության)
  4. Էլեմենտներ ավելացնելու այլընտրանքային մեթոդ

Ահա մի օրինակ, թե ինչպես օգտագործել «Splice» գործառույթը: Ասեք, որ մենք ունենք տարբեր պտուղներ, բայց մենք ուզում ենք հեռացնել անհատական ​​տարրը "նարնջագույն":

var մրգեր = ["խնձոր", "նարնջագույն", "բանան"]

var հեռացվել = array.splice (1,1)
/ *
հանված === ["նարնջագույն"]
մրգեր === ["խնձոր", "բանան"]
* /

Դուք դա կնկատեք «Splice» ֆունկցիան իրականում վերադարձնում է երկու զանգված, բնօրինակ զանգված (որն այժմ բացակայում է հանված տարրը) և զանգված, որը պարունակում է պարզապես հանված տարրերը.

Մի քանի տարրեր հեռացնելու համար Splice օգտագործելը նույնքան հեշտ է.

Այս օրինակում ես կօգտագործեմ «Splice» ՝ մի շարք տարրերից մեկ զանգվածից հեռացնելու համար.

var մրգեր = ["խնձոր", "նարնջագույն", "բանան", "տանձ", "կիվի", "սեխ", "հապալաս"]

var հեռացվել = array.splice (2,3)
/ *
հանված === ["բանան", "տանձ", "կիվի"]
մրգեր = ["խնձոր", "նարնջագույն", "սեխ", "հապալաս"]
* /

Քայլ 2. Հեռացրեք տարրերը JavaScript- ի զանգվածի ավարտից փոփով ()

Splice հրամանի օգտագործման խնդիրն այն է, որ դուք պետք է իմանաք այն տարրերի յուրաքանչյուր ցուցիչի դիրքը, որը ցանկանում եք հեռացնել.

Եթե ​​ցանկանում եք հեռացնել ձեր զանգվածի վերջին տարրը, «փոփ» -ը կլինի ավելի հարմար գործառույթ. Այն նաև ավելի պարզ է, քանի որ ձեզ հարկավոր չէ հարմարեցնել ձեր ծածկագիրը տարբեր երկարությունների զանգվածների համար.

«Փոփ» գործառույթը գործում է ինչպես Push գործառույթի նման, որը JavaScript- ի մասնագետները կիմանան, մի տարր է ավելացնում զանգվածի ավարտին:.

«Pop» – ի օգտագործումը շատ պարզ է.

["խնձոր", "նարնջագույն", "բանան"]

ցուցակ.pop ()
["խնձոր", "նարնջագույն"]

«Փոփը» կարող է հեռացնել մեկ տարրը ձեր զանգվածի ավարտից.

Սակայն, եսզ ցանկանում եք հեռացնել բազմաթիվ տարրեր JavaScript- ի զանգվածի վերջից, մի օգտագործեք այն: Պարզապես դրեք զանգվածի երկարության գույքը ավելի ցածր, քան նրա ընթացիկ արժեքը. Elementsանկացած տարրեր, որոնք գալիս են ձեր տեղադրած դիրքից հետո, կհանվեն.

var մրգեր = ["խնձոր", "նարնջագույն", "բանան", "տանձ", "կիվի", "սեխ", "հապալաս"]

մրգեր. երկարություն = 3
// 2-ից բարձր ցուցանիշ ունեցող յուրաքանչյուր տարր կհեռացվի
console.log (մրգեր); // ["խնձոր", "նարնջագույն", "բանան"]

Քայլ 3. Հեռացրեք տարրերը JavaScript Array- ի սկզբից հերթափոխով ()

Իհարկե, Դուք նաև գուցե ցանկանաք, որ JS- ն շարադրի զանգվածի սկզբնամասը, այլ ոչ թե վերջը, մի շարք տարրերից. Այդ դեպքում կարող եք օգտագործել «Shift» գործառույթը, որն ըստ էության նույնականորեն աշխատում է փոփին ().

Այսպես է գործելու «Shift» գործառույթը, երբ կիրառվում է մեր սիրված մրգերի ցանկում.

["խնձոր", "նարնջագույն", "բանան"]

ցուցակ.shift ()
["նարնջագույն", "բանան"]

Նշում չկա, որ երկար զանգվածի գույքը հեռացնելու բազմաթիվ տարրեր ձեր զանգվածի սկզբից օգտագործելու պարզ միջոց չկա, քանի որ վերջում կարող եք անել տարրերի համար.

Եթե ​​դա այն է, ինչ դուք պետք է անեք, ես առաջարկում եմ օգտագործել երկրորդ փոփոխական `ձեր տարրերի կարգը փոխելու համար, ապա կիրառեք մեթոդով նկարագրված երկարության կրճատումը, և վերջապես փոխեք զանգվածի տարրերի կարգը նորից.

4. Օգտագործեք «’նջել» գործառույթը `անհատական ​​զանգվածի օբյեկտները հեռացնելու համար

«Deleteնջել» օպերատորից օգտվելը շատ զանգվածների համար տեղին չէ: Ի տարբերություն վերը նկարագրված մեթոդների, որոնք իրականում կկրճատվեն զանգվածի երկարությունը տարրը հանվելուց հետո, ջնջումը () պարզապես գրանցելու է հեռացված elemenտ ինչպես ‘unսահմանված »: Դա նշանակում է, որ մնացած տարրերի ցուցանիշները չեն ազդի.

Բայց ինչու է դա անում?

Քանի որ «Deleteնջել» գործառույթը նախատեսված է համակարգային հիշողությունը ազատելու համար, այլ ոչ թե զանգվածի չափսերը կարգավորելու համար: JavaScript- ը ստեղծվել է այնպես, որ չսահմանափակված տարրերի վրա ռեսուրսներ չկորցնի, այնպես որ ‘Deleteնջել’ գործառույթը չի անհանգստացնում որևէ այլ բան անել.

Դեռևս, եթե ցանկանում եք հեռացնել օբյեկտը JavaScript- ի զանգվածից և այնուհետև ավելացնել փոխարինման արժեք ավելի ուշ, ապա ջնջումը () կհամապատասխանի ձեր կարիքներին.

Դուք կարող եք կիրառել այսպես.

մրգեր = ["խնձոր", "նարնջագույն", "բանան"]

ջնջել մրգերը [1];
console.log (մրգեր); // ["խնձոր", չսահմանված, "բանան"]

Քայլ 5. Գտեք և հեռացրեք հատուկ արժեքի տարրը

Փորձառու JS ծրագրավորողներն արդեն գիտակցել են, որ եթե ցանկանում եք հեռացնել հատուկ արժեքի տարր, ապա կարող եք հեշտությամբ ավելացնել կոդերի լրացուցիչ գիծ ՝ տարրի տարրը գտնելու համար, այնուհետև արդյունքը միացնելու համար վերը նշված ցանկացած գործառույթներից.

Այնուամենայնիվ, տվյալ արժեքի մեկ տարրը արդյունավետ հեռացնելու համար, Ես խորհուրդ եմ տալիս միավորել ինդեքսի որոնման և տարրերի հեռացման հրամանները JavaScript կոդի մեկ տողի մեջ. Դա անելու համար դուք կարող եք զանգահարել որոնում ձեր զանգվածում `Նախնական արժեքի համար` Splice գործառույթի շրջանակներում.

Օրինակ, եթե ուզում եք հեռացնել "կիվի" իմ մրգերի ցանկից, բայց չգիտեք, թե որտեղ է այն հայտնվում զանգվածի մեջ, կարող եք անել հետևյալը.

["խնձոր", "բանան", "տանձ", "կիվի", "սեխ", "հապալաս"]

list.splice (list.indexOf ("կիվի"), 1);
// Փնտրեք կիվիի դիրքը և հանեք մեկ տարր, երբ այն հայտնվի
["խնձոր", "բանան", "տանձ", "սեխ", "հապալաս"]

Եվս մեկ անգամ կնկատեք, որ «Splice» գործառույթն օգտագործելով ՝ մենք իրականում փոխել ենք ցուցակի ինդեքսավորումը և երկարությունը, այլ ոչ թե պարզապես շրջել բոլորը "կիվի" արժեքները չորոշված ​​փոփոխականների մեջ.

Քայլ 6. Նույն արժեքով գտեք և հեռացրեք բազմաթիվ տարրեր

Նկատի ունեցեք, որ վերը նշված մեթոդը գործում է միայն նշված արժեքի մեկ օրինակ հանելու համար. Եթե ​​ցանկանում եք ազատվել միևնույն արժեքի բազմաթիվ տարրերից (indexOf () և splice () հրամաններով), ապա ձեզ հարկավոր է օգտագործել «if» օղակ.

Եթե ​​իմ պտուղների ցուցակից հանելու համար կան բազմաթիվ կիվեր, ես կօգտագործեի հետևյալ ծածկագիրը.

["խնձոր", "կիվի", "բանան", "տանձ", "կիվի", "սեխ", "հապալաս"]

համար (var j = list.l length-1; j–;) // iteratively ստուգում է ցուցակի յուրաքանչյուր փոփոխական
{
եթե (ցուցակ (ժ) === ‘կիվի’)
list.splice (j, 1) // ուր որ կիվի է հայտնվում, ջնջիր մեկ տարր
}
["խնձոր", "բանան", "տանձ", "սեխ", "հապալաս"]

Քայլ 7. Հեռացրեք տարրերը `զանգվածը զտելով

Ի տարբերություն «փոփ», «Shift» և «Splice» գործառույթների, «Զտիչ» գործառույթն աշխատում է ՝ ստեղծելով նոր զանգված, այլ ոչ թե փոփոխելով առկաը. Դա օգտակար է, եթե ցանկանում եք պահպանել ձեր հին զանգվածի արժեքները `հետագա համեմատության համար.

Այսպիսով, եթե, ինչպես վերևում, ես կցանկանայի հեռացնել բոլոր կիվիները իմ զանգվածից, բայց այս անգամ նույնպես փոփոխված ցուցակը նոր փոփոխականի վերածելու համար ես կանեի հետևյալը.

var մրգեր = ["խնձոր", "կիվի", "բանան", "տանձ", "կիվի", "սեխ", "հապալաս"]

var fruitfiltered = fruit.filter (գործառույթ (մրգ)
// զանգում է ֆիլտրի ֆունկցիան
{
վերադարձ պտուղ! == "կիվի"
// վերադարձնել ցանկացած պտուղ, որը կիվի չէ
});
// մրգեր = ["խնձոր", "կիվի", "բանան", "տանձ", "կիվի", "սեխ", "հապալաս"]
// պտուղները զտված = ["խնձոր", "բանան", "տանձ", "սեխ", "հապալաս"]

Մեկ վերջին հուշում. Մի մոռացեք զրո-ինդեքսավորման մասին

Անկախ նրանից, թե որ մեթոդն եք օգտագործում ՝ ձեր JavaScript- ի զանգվածից տարր հանելու համար, կարևոր է հիշել, որ JavaScript- ի բոլոր զանգվածները զրոյական են.

Այսպիսով, օրինակ, եթե կառուցեք հետևյալ զանգվածը.

զանգված = ["խնձոր", "նարնջագույն", "բանան"]

Այնուհետև խնձորը կփոխանցվի 0 որպես ինդեքս, նարնջագույնը կստանա 1, իսկ բանանը `2: Կարևոր է հաշվի առնել այս փոքր-ինչ անսովոր ինդեքսավորման համակարգը մտապահելիս, երբ փորձեք հեռացնել« Սպլիտ »գործառույթով որևէ տարր, եթե չլինեք: նորից ավտոմատ կերպով որոշելով տարրի դիրքը, ինչպես ցույց է տրված մեթոդ հինգում.

Գտե՞լ եք այլընտրանքային մեթոդ ՝ Javascript- ում տարրը զանգվածից հանելու համար: Եթե ​​այդպես է, ներքևում թողեք ինձ մեկնաբանություն!

Առնչվող հաղորդագրություններ

CodingBat – փորձարկման և կատարելագործման արդյունավետ միջոց…

Փնտրում եք կոդավորում զրոյից սովորելու մատչելի եղանակներ: CodingBat- ը կարող է պարզապես լինել ձեր ռեսուրսը: Այս պլատֆորմը դասեր է տալիս…

6 լավագույն վեբ հոստինգ ծառայություններ մշակողների համար

Վերջին տարիներին, WordPress- ի, Drupal- ի և Magento- ի նման CMS հարթակների շնորհիվ, վեբ հոստինգը դարձել է ավելի ու ավելի մատչելի: Եւ նույնիսկ…

Ո՞րն է կոդավորումը և այն սովորելու լավագույն գործիքները

Քանի որ ավելի ու ավելի շատ ձեռնարկություններ և ծառայություններ անցում են դեպի առցանց հարթակ, ծրագրավորումը կայունորեն աճում է որպես մեկը…

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me