793 Stimmen

Objekt aus Array entfernen mit JavaScript

Wie kann ich ein Objekt aus einem Array entfernen? Ich möchte das Objekt entfernen, das den Namen Kristian von someArray . Zum Beispiel:

someArray = [{name:"Kristian", lines:"2,5,10"},
             {name:"John", lines:"1,19,26,96"}];

Ich möchte etwas erreichen:

someArray = [{name:"John", lines:"1,19,26,96"}];

9voto

JuliaCesar Punkte 1021

Stimmen Sie für die UndercoreJS für die einfache Arbeit mit Arrays.

_.ohne() Funktion hilft, ein Element zu entfernen:

 _.without([1, 2, 1, 0, 3, 1, 4], 0, 1);
    => [2, 3, 4]

6voto

Siddhartha Punkte 1257

Mit ES 6 Pfeilfunktion

let someArray = [
                 {name:"Kristian", lines:"2,5,10"},
                 {name:"John", lines:"1,19,26,96"}
                ];
let arrayToRemove={name:"Kristian", lines:"2,5,10"};
someArray=someArray.filter((e)=>e.name !=arrayToRemove.name && e.lines!= arrayToRemove.lines)

4voto

dougajmcdonald Punkte 17991

Obwohl dies für diese Situation wahrscheinlich nicht so geeignet ist, habe ich neulich herausgefunden, dass man auch die delete Schlüsselwort, um ein Element aus einem Array zu entfernen, wenn Sie die Größe des Arrays nicht ändern müssen, z. B.

var myArray = [1,2,3];

delete myArray[1];

console.log(myArray[1]); //undefined

console.log(myArray.length); //3 - doesn't actually shrink the array down

3voto

solanki... Punkte 4372

Sie können verwenden Karte Funktion auch.

someArray = [{name:"Kristian", lines:"2,5,10"},{name:"John",lines:"1,19,26,96"}];
newArray=[];
someArray.map(function(obj, index){
    if(obj.name !== "Kristian"){
       newArray.push(obj);
    }
});
someArray = newArray;
console.log(someArray);

3voto

Creynders Punkte 4532

Die einfachste Lösung wäre, eine Map zu erstellen, die die Indizes für jedes Objekt nach Namen speichert, etwa so:

//adding to array
var newPerson = {name:"Kristian", lines:"2,5,10"}
someMap[ newPerson.name ] = someArray.length;
someArray.push( newPerson );

//deleting from the array
var index = someMap[ 'Kristian' ];
someArray.splice( index, 1 );

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