2016-06-10 17 views
0

zurückkehren Ich habe einige Objekte in einem Array:aus einem Array ein Objekt entfernen und das Ergebnis

var names = [ 
    { id:"101", name:"eric" }, 
    { id:"202", name:"john" }, 
    { id:"303", name:"zack" }, 
    { id:"404", name:"ron" } 
]; 

Ich möchte eines der Objekte entfernen. Ich habe nur ein Stück Daten, um das Objekt-Array zu überprüfen, die id = 202 ist. Schließlich möchte ich die eingestellte Array zurück, wie folgt aus:

[ 
    { id:"101", name:"eric" }, 
    { id:"303", name:"zack" }, 
    { id:"404", name:"ron" } 
]; 
+1

Das ist nicht JSON. Das ist ein JavaScript-Array-Literal. – Pang

+0

http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/ –

Antwort

1

Mit dem Einsatz von filter verwenden können:

+0

danke, das Ergebnis ist, was ich will. –

0

Hallo u Underscore.js sehr einfach

var names = [ 
    { id:"101", name:"eric" }, 
    { id:"202", name:"john" }, 
    { id:"303", name:"zack" }, 
    { id:"404", name:"ron" } 
]; 

console.log(_.reject(names, function(num){ return num.id == "202"; })) 

gehören die Bibliothek unterstreichen

+1

Es ist nicht notwendig, eine Bibliothek zu verwenden! – Sun

+0

Underscore ist eine JavaScript-Bibliothek, die eine ganze Menge nützlicher funktionaler Programmierhelfer bietet, ohne eingebaute Objekte zu erweitern. Underscore bietet über 100 Funktionen. in der Zukunft, wenn er viele Operationen besser schreiben möchte, um dieses zu verwenden, ist es mein Vorschlag –

+1

Es ist besser, einfaches JavaScript zuerst zu lernen und zu verstehen. Dann, wenn es nützlich ist, kann man in einer speziellen Bibliothek nach speziellen Fällen suchen. – Sun

4

In Javascript können Sie entweder Array.filter oder Array.reject verwenden um ein Array von Objekten zurückzugeben, die Sie möchten. Im Folgenden habe ich gezeigt, wie dies mit Filtern erreicht wird.

names.filter(function(eachObject){ return eachObject.id !== '202';}) 

Array.filter ist eine native Funktion, die ein vorhandenes Array nehmen und ein neues Array mit den gefilterten Werten zurückzukehren. Dies geschieht durch Iterieren über jedes Element im Array und Ausführen einer Prädikat-/Wahrheitsfunktion für jedes einzelne Element. Wenn ein Element den Wahrheitstest besteht, wird es in das neue Array geschoben. Sobald die Iteration abgeschlossen ist, gibt der Filter ein brandneues Array mit nur den Werten zurück, die den Test bestehen.

In dem obigen Beispiel ist die Prädikatfunktion eine anonyme Funktion, die wir an Filter übergeben haben. Sie können auch eine Funktion übergeben, die zuvor wie folgt deklariert wurde.

In Ihrem Beispiel wird auch kein richtiger JSON dargestellt. Wenn Sie Zeit haben, gehen Sie durch ein schnelles Tutorial unter http://www.w3schools.com/json/default.asp, um aufzupäppeln.

Eine weitere Sache. Wenn Sie in Zukunft überprüfen möchten, ob etwas in der richtigen JSON ist, gehen Sie einfach auf http://jsonlint.com/ und kopieren Sie Ihren Code in. Es wird Ihnen sagen, ob oder nicht Ihr Code JSON korrekt ist. Es wird dir sogar genau sagen, was falsch ist.

Dies ist meine erste Antwort. Es tut mir so leid, wenn ich Ihre Frage nicht vollständig beantwortet habe. Ich hoffe es hilft.!

Verwandte Themen