a JavaScript tömbök lehetővé teszi, hogy a csoport értékek halad át őket. A tömbelemeket különböző módon lehet hozzáadni és eltávolítani. Sajnos nincs egyszerű tömb.távolítsa el a módszert.
tehát hogyan törölhet egy elemet egy JavaScript tömbből?,
a törlési módszer helyett a JavaScript tömb számos módon tisztíthatja a tömb értékeit.
eltávolíthatja az elemeket a tömb végétől a pop használatával, az elejétől a shift használatával, vagy a középső részről a splice segítségével. A JavaScript tömb szűrő módszer egy új tömb létrehozásához a kívánt elemekkel, a nem kívánt elemek eltávolításának fejlettebb módja.,licitly Távolítsa el a Tömb Elemeinek Használata a Delete Operátor
vannak különböző módszerek, technikák segítségével, hogy távolítsa el az elemeket a JavaScript tömbök:
- pop – Eltávolítja a Végén egy Tömb
- shift – Eltávolítja az elején egy Tömb
- splice – eltávolítja az adott Tömb index
- szűrő – lehetővé teszi, hogy programatically távolítsa el az elemeket egy Tömb
Azt is megtanulják, más módon, akkor távolítsa el az elemeket egy sor, ami lehet, hogy nem annyira nyilvánvaló, mint LoDash.,
elemek eltávolítása a JavaScript tömb végéről
a JavaScript tömb elemei eltávolíthatók a tömb végéről úgy, hogy a hossz tulajdonságot az aktuális értéknél kisebb értékre állítják. Minden olyan elem, amelynek indexe nagyobb vagy egyenlő az új hosszúsággal, eltávolításra kerül.
var ar = ; ar.length = 4; // set length to remove elements console.log( ar ); //
a pop metódus eltávolítja a tömb utolsó elemét, visszaadja azt az elemet, és frissíti a hossz tulajdonságot. A pop metódus módosítja azt a tömböt, amelyre hivatkoznak, ez azt jelenti, hogy az utolsó elem törlésével ellentétben teljesen eltávolításra kerül, a tömb hossza pedig csökken.,
var ar = ; ar.pop(); // returns 6 console.log( ar ); //
elemek eltávolítása a JavaScript tömb elejétől
hogyan távolíthatja el a JavaScript tömb első elemét?
a shift módszer ugyanúgy működik, mint a pop módszer, kivéve, hogy eltávolítja a JavaScript tömb első elemét az utolsó helyett.
nincsenek paraméterek, mivel a shift módszer csak az első tömb elemet távolította el. Az elem eltávolításakor a fennmaradó elemek lefelé tolódnak.,
var ar = ; ar.shift(); // returns "zero" console.log( ar ); //
a shift metódus visszaadja az eltávolított elemet, frissíti a fennmaradó elemek indexeit, és frissíti a hossz tulajdonságot. Módosítja azt a tömböt, amelyre hivatkoznak.
ha nincsenek elemek, vagy a tömb hossza 0, a módszer nem definiált.
A Splice használatával távolítsa el a Tömbelemeket a JavaScriptben
a splice módszer használható elemek hozzáadására vagy eltávolítására egy tömbből. Az első argumentum meghatározza az elemek hozzáadásának vagy eltávolításának helyét. A második argumentum meghatározza az eltávolítandó elemek számát., A harmadik és az azt követő argumentumok nem kötelezőek, a tömbhöz hozzáadandó elemeket jelölik.
itt a splice módszerrel két elemet távolítunk el a harmadik pozícióból (nulla alapú index):
var arr = ; var removed = arr.splice(2,2);
Az eltávolított elemeket tartalmazó tömb a splice módszerrel kerül visszaadásra. Láthatjuk, hogy az eltávolított tömb tartalmaz, az eredeti tömb pedig a fennmaradó értékeket tartalmazza.
az illesztési módszer számos elem eltávolítására is használható egy tömbből.,
var list = ; list.splice(0, 2); // Starting at index position 0, remove two elements and retains .
tömb elemek eltávolítása érték szerint Splice
Ha ismeri az eltávolítani kívánt értéket egy tömbből, használhatja a splice módszert. Először meg kell határoznia a célelem indexét. Ezután az indexet használja kezdő elemként, majd csak egy elemet távolít el.
var arr = ; for( var i = 0; i < arr.length; i++){ if ( arr === 5) { arr.splice(i, 1); } } //=>
Ez egy egyszerű példa, ahol az elemek egészek. Ha van egy sor tárgyat, akkor szükség van egy kifinomultabb rutin.
Ez akkor működik, ha csak egyetlen elemet szeretne eltávolítani., Ha azt szeretnénk, hogy távolítsa el több elem, amely megfelel a kritériumoknak van egy hiba.
mivel az elemek eltávolításra kerülnek a tömbből, az index továbbra is növekszik,a következő elem pedig a kiegyenlített érték kihagyása után.
az egyszerű megoldás a fenti példa módosítása az indexváltozó csökkentéséhez, hogy ne hagyja ki a tömb következő elemét.
var arr = ; for( var i = 0; i < arr.length; i++){ if ( arr === 5) { arr.splice(i, 1); i--; } } //=>
a módosított példában további 2 5 értéket adtam a tömbhöz. Azt is hozzátette, “Én -;” miután a splice hívás.
Most, amikor végrehajtja a hurkot, eltávolítja az összes megfelelő elemet.,
köszönhetően Kristian Sletten rámutatva, hogy a probléma a hurok kihagyja a következő elemet.
A tömb szűrő módszer használatával az elemek
értékkel történő eltávolításához a szűrő új tömböt hoz létre. szűrő () nem mutálja a tömb, amelyen az úgynevezett, de visszatér egy új tömb.a
szűrő () egyetlen paraméterrel, visszahívási módszerrel rendelkezik. A visszahívás akkor aktiválódik, amikor a szűrési módszer a tömb elemein keresztül iterálódik. Három értéket ad át a visszahívásnak: az aktuális értéket vagy elemet, az aktuális tömb indexet és a teljes tömböt.,
a visszahívási módszernek igaznak vagy hamisnak kell lennie. Az Ön felelőssége, hogy tesztelje az értéket (elemet), hogy megnézze, megfelel-e a kritériumoknak. Ha igen, akkor vissza igaz. A true-t visszaadó elemek hozzáadódnak az új, szűrt tömbhöz.
var array = ; var filtered = array.filter(function(value, index, arr){ return value > 5; }); //filtered => //array =>
meg kell jegyezni, egy új tömb, amely megfelelő értékeket vissza. Az eredeti tömb érintetlen marad. Ezt hasznosnak találom, mert gyakran meg akarok őrizni egy eredeti adatforrást, de különféle logikai készletek alapján letölteni az alcsoportokat.,
A lodash Array Remove Method
néha segédprogram könyvtárak a legjobb módja annak, hogy megoldja bonyolultabb problémákat. A lodash gazdag tömb-manipulációs módszereket kínál, az egyik eltávolításra kerül.
a lodash eltávolítási módszer ugyanúgy működik, mint a tömb szűrő módszer, de fordítva. Nem menti az eredeti tömb értékeket, hanem eltávolítja a megfelelő elemeket. Ez visszaadja a megfelelő elemeket, mint egy új tömb.
var array = ;var evens = _.remove(array, function(n) { return n % 2 === 0;});console.log(array);// => console.log(evens);// =>
eltávolítási módszer készítése
ahogy már említettem, nincs natív tömb.távolítsa el a módszert., A lodash lodash módszer megoldja ezt a problémát, de lehet, hogy nem mindig akarja használni a Lodash-t. Ez nem jelenti azt, hogy nem hozhat létre segédprogramot. John Resig adott nekünk egy követendő modellt, azonban kiterjesztette a tömb prototípusát, ami rossz ötlet.
ehelyett létrehoztam egy Array remove utility metódust, amely hozzáadható egy segítő vagy segédprogram könyvtárhoz. A lodash remove metódushoz hasonlóan az első paraméter a cél tömb. Ez használ tömb.szűrő vissza elemeket nem megfelelő értéket.
Ez a módszer egyszerű, egyszerű értékeket feltételez, például számokat vagy karakterláncokat., Ezt a módszert módosíthatja egy customcomparison módszer használatához, de azt hiszem, könnyebb lenne közvetlenül használni a szűrő módszert.
explicit módon távolítsa el a Tömbelemeket a Delete operátor segítségével
eltávolíthat bizonyos tömbelemeket a Delete operátor segítségével:
var ar = ; delete ar; // delete element with index 4 console.log( ar ); // alert( ar ); // 1,2,3,4,,6
a Delete operátor használata nem befolyásolja a hossz tulajdonságot. Nem befolyásolja a későbbi elemek indexeit sem. A tömb ritkává válik, ami divatos módja annak, hogy a törölt elemet nem távolítják el, hanem meghatározatlanná válik. Hasonlítsa össze a Törlés használatával az alább leírt splice módszerrel.,
a Törlés operátor célja a Tulajdonságok eltávolítása a JavaScript objektumokból, amelyek tömbök objektumok.
az ok, amiért az elemet nem távolítják el a tömbből, a Törlés operátor inkább a memória felszabadításáról szól, mint egy elem törléséről. A memória felszabadul, ha nincs több hivatkozás az értékre.
törölje vagy állítsa vissza a JavaScript tömb
mi van, ha azt szeretnénk, hogy üres egy egész tömb, és csak kiírása az összes elemét?
van egy pár technikák segítségével hozzon létre egy üres vagy új tömb.,
a legegyszerűbb és leggyorsabb módszer egy tömb változó üres tömbbe állítása:
var ar = ;//do stuffar = ;//a new, empty array!
a probléma, amelyet ez okozhat, ha hivatkozunk a változóra. A változóra való hivatkozások nem változnak, továbbra is megtartják az eredeti tömb értékeit. Ez természetesen létrehozhat egy hibát🐛.
Ez egy túl egyszerűsített példa erre a forgatókönyvre:
var arr1 = ;var arr2 = arr1; // Reference arr1 by another variable arr1 = ; console.log(arr2); // Output
egy egyszerű trükk a tömb törléséhez a hossz tulajdonság 0-ra állítása.,
var ar = ;console.log(ar); // Output ar.length = 0;console.log(ar); // Output
egy másik, természetellenes technika a splice módszer használata, amely a tömb hosszát 2.paraméterként adja meg. Ez visszaadja az eredeti elemek másolatát, ami hasznos lehet a forgatókönyv számára.
var ar = ;console.log(ar); // Output ar.splice(0, ar.length);console.log(ar); // Output
az utolsó két technika nem hoz létre új tömböt, hanem megváltoztatja a tömb elemeit. Ez azt jelenti, hogy a hivatkozásokat is frissíteni kell.
van egy másik módja, egy while hurok használatával. Úgy érzi, egy kicsit furcsa számomra, de ugyanakkor úgy néz ki, divatos, így lehet lenyűgözni néhány barát!,
var ar = ;console.log(ar); // Output while (ar.length) { ar.pop(); }console.log(ar); // Output
nem úgy mennék, mint egy JavaScript tömb törlése, de működik és olvasható. Néhány teljesítményteszt azt is kimutatta, hogy ez a leggyorsabb technika, tehát talán jobb, mint eredetileg gondoltam!
összefoglaló
a JavaScript tömb elemek eltávolítása fontos az adatok kezeléséhez. Nincs egyetlen “eltávolítás” módszer áll rendelkezésre, de vannak különböző módszerek és technikák segítségével megtisztítani a nem kívánt tömb elemeket.
Ez a cikk áttekintette ezeket a módszereket, és hogyan lehet őket használni., Azt is látta, hogyan lehet létrehozni egy segítő módszer, ami eltávolítja az elemeket egy tömb egy kicsit könnyebb, következetes.
köszönhetően Rob Sherwood rámutatva néhány szintaktikai helyesírási!