2017-05-18 6 views
0

Ich habe nächstes Objekt:Vergleich Objekte in JavaScript

rows = [ 
    { 
    name: "user1", 
    previlege: "Filtering" 
    }, 
    { 
    name: "user2", 
    previlege: "Reportering" 
    }, 
    { 
    name: "user3", 
    previlege: "Filtering" 
    } 
] 

Und ein anderes Objekt:

selected = { 
    name: "user1", 
    previlege: "Filtering" 
} 

I Filterreihen wollen und Objekt löschen, die angepasst, also muß ich sie vergleichen. Ich versuchte es so:

rows.filter(function(object) { 
    return JSON.stringify(object) !== JSON.stringify(selected); 
}); 

Aber es funktioniert nicht. Wie kann ich dieses übereinstimmende Objekt löschen?

+0

Ich lief den Code in Chrom Konsole und es funktionierte gut. –

+0

Möchten Sie wirklich über 'JSON.stringify()' vergleichen? Wenn Sie das Objekt mit derselben 'name'-Eigenschaft ausfiltern möchten, aber eine andere' previlege'-Eigenschaft hat, würde es nicht funktionieren. –

+1

was meinst du nicht funktioniert? –

Antwort

3

Wenn Sie das Element aus dem Array entfernen möchten versuchen, Sie können das Ergebnis des Filters in ein neues Array zu speichern

newArray = rows.filter(function(object) { 
    return JSON.stringify(object) !== JSON.stringify(selected); 
}); 

rows = newArray; 
+2

Oder einfach' rows = rows .filter (...) '. –

+0

Ja das funktioniert auch, versuche nur expliziter zu sein :) –