JavaScript: Element aus Array löschen

Posted: Mai 21st, 2011 | Filed under: Allgemein, Programmieren, Tutorials | Tags: , , , , | 6 Comments »

Wenn ihr ein Element aus einem Array in JavaScript löschen wollt könnt ihr dies über eine spzielle Methode namens splice(). Das ganze funktioniert folgendermaßen.

// Array anlegen
var names = new Array("Peter","Klaus","Maria","Lukas");

// Maria löschen!
var deleteIndex = 2;

// Der erste Parameter gibt an ab welchem Index gelöscht werden soll.
// Der zweite wieviele einschließlich diesem Index herrausgelöscht werden sollen.
// In unserem fall lediglich einen, nämlich "Maria"
names.splice(deleteIndex,1);

// Übrig bleibt der Array: ["Peter","Klaus","Lukas"]

 

Ich hoffe ich konnte dem ein oder anderen helfen! 🙂


6 Comments on “JavaScript: Element aus Array löschen”

  1. 1 Rlf Beh said at 17:58 on November 7th, 2013:

    Ich glaube das stimmt nicht.

    Bei mir erhalte ich bei :

    var names = new Array(„Peter“,“Klaus“,“Maria“,“Lukas“);

    var deleteIndex = 2;

    names.splice(deleteIndex,1);

    Als Ergebnis

    [„Maria“]

    Zum Löschen eines Elementes bietet es sich an, die Remove-Funktion zum Prototype hinzuzufügen

  2. 2 Rlf Beh said at 17:59 on November 7th, 2013:

    Ups vergessen zu posten:

    // Array Remove – By John Resig (MIT Licensed)
    Array.prototype.remove = function(from, to) {
    var rest = this.slice((to || from) + 1 || this.length);
    this.length = from < 0 ? this.length + from : from;
    return this.push.apply(this, rest);
    };

  3. 3 Florian said at 17:53 on Dezember 6th, 2013:

    @Rlf Beh:
    Das ist nicht ganz richtig. Die Funktion tut schon was sie soll, aber sie tut es ähnlich wie die Array-Methoden .shift() und .pop().
    Das heißt: sie gibt das entfernte Element zurück ([„Maria“]), aber dieses wurde trotzdem aus dem originalen Array (names) entfernt.

    Nebenbei: native Prototypes verändern ist böse. 😉

  4. 4 d said at 13:05 on Juni 27th, 2014:

    Statt deleteIndex ging noch „names.indexOf(‚Maria‘)“.. also:

    names.splice(names.indexOf(‚Maria‘),1)

    resp. bei der Prototyp Variante:

    names.remove(names.indexOf(‚Maria‘))

    PS: ich verwechsel immer slice & splice und wunder mich dann wenn es nicht geht -.-*

  5. 5 Kai said at 13:16 on Oktober 10th, 2016:

    Hi, kann ich das auch bei mir als Lösungsansatz nutzen? Und wenn JA, wo genau im Code?

    Ich habe hier einen Wert, der ausgegeben wird, den ich aber im Dropdown nicht haben will, nämlich den ersten Wert = WebKitDatabaseInfoTable

    Diese kommt, wenn ich das richtig verstehe, aus dem Array tbl_name

    Hier mein Code:

    function processResultSet2(results) {

    var option = document.createElement(‚option‘);

    var len = results.rows.length;
    var select = document.createElement('select');
    select.name = 'munitionskiste';

    option.innerHTML = 'Bitte wählen Sie eine Kiste';
    option.value = '';
    select.appendChild(option);

    for (var i = 0; i < len; i++) {
    if (results.rows[i].tbl_name != '_WebKitDatabaseInfoTable_') {
    var option = document.createElement('option');
    option.innerHTML = results.rows[i].tbl_name;
    select.appendChild(option);
    }
    }

    var parent = document.getElementById('select');
    parent.appendChild(select);

    }

    Danke für Feedback 🙂

  6. 6 Markus Schulz said at 05:50 on Oktober 27th, 2017:

    Hey, danke. Hat mir ein Stück weiter geholfen!

    Bei mir löscht er aber immer nur das Ende des arrays.. -.- Ich tüftel mal weiter.


Leave a Reply