1451 Stimmen

Löschen von Array-Elementen in JavaScript - Löschen vs. Spleißen

Was ist der Unterschied zwischen der Verwendung von die delete Betreiber auf das Array-Element im Gegensatz zur Verwendung von die Array.splice Methode ?

Zum Beispiel:

myArray = ['a', 'b', 'c', 'd'];

delete myArray[1];
//  or
myArray.splice (1, 1);

Warum überhaupt die Splice-Methode, wenn ich Array-Elemente löschen kann, wie ich mit Objekten kann?

4 Stimmen

Para .splice in Schleifen, werfen Sie einen Blick auf diese Frage: Löschen aus Array in Javascript .

6 Stimmen

@andynormancx Ja, aber diese Antwort wurde erst einen Tag später gepostet und erhielt so viele Stimmen - ich würde sagen, sie ist besser geschrieben, das muss es sein.

0 Stimmen

@andynormancx - Es scheint kein exaktes Duplikat zu sein. Die Frage, die Sie verlinkt haben, fragt im Grunde, warum das Löschen eines Elements aus einem Array (wodurch es spärlich wird) dessen Länge nicht verringert. Diese Frage fragt nach den Unterschieden zwischen delete y Array.prototype.splice .

0voto

roland Punkte 7345

IndexOf akzeptiert auch einen Referenztyp. Nehmen wir das folgende Szenario an:

var arr = [{item: 1}, {item: 2}, {item: 3}];
var found = find(2, 3); //pseudo code: will return [{item: 2}, {item:3}]
var l = found.length;

while(l--) {
   var index = arr.indexOf(found[l])
      arr.splice(index, 1);
   }

console.log(arr.length); //1

Ganz anders:

var item2 = findUnique(2); //will return {item: 2}
var l = arr.length;
var found = false;
  while(!found && l--) {
  found = arr[l] === item2;
}

console.log(l, arr[l]);// l is index, arr[l] is the item you look for

-1voto

Eyad Farra Punkte 4402
function deleteFromArray(array, indexToDelete){
  var remain = new Array();
  for(var i in array){
    if(array[i] == indexToDelete){
      continue;
    }
    remain.push(array[i]);
  }
  return remain;
}

myArray = ['a', 'b', 'c', 'd'];
deleteFromArray(myArray , 0);

// Ergebnis: myArray = ['b', 'c', 'd'];

0 Stimmen

@ChrisDennis warum? (kein Sarkasmus oder Böswilligkeit beabsichtigt, dies ist eine aufrichtige Frage)

0 Stimmen

Abgesehen von der Tatsache, dass diese Antwort nicht auf die Frage des Auftraggebers eingeht

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X