JavaScript: Element aus Array löschen
Posted: Mai 21st, 2011 | Filed under: Allgemein, Programmieren, Tutorials | Tags: Array, Element aus Array löschen, Element löschen, JavaScript, JQuery | 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! 🙂
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
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);
};
@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. 😉
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 -.-*
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 🙂
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.