Filtern von einem Array von Objekten mit Hilfe von Jquery $.grep ohne ein Objekt-Wrapper
Filterung funktioniert gut für ein Objekt (data
) die Verpackung um ein array von Objekten:
var arr = {"data":
[
{"name":"Alan","height":"171","weight":"66"},
{"name":"Ben","height":"182","weight":"90"},
{"name":"Chris","height":"163","weight":"71"}
]
};
var new_arr = $.extend(true, arr);
new_arr.data = $.grep(new_arr.data, function(n, i){
return n.weight > 70;
});
alert(new_arr.data.length); //answer is 2
Jedoch, Filterung, ohne die Objekt-wrapper nicht.
var arr = [
{"name":"Alan","height":"171","weight":"66"},
{"name":"Ben","height":"182","weight":"90"},
{"name":"Chris","height":"163","weight":"71"}
];
var new_arr = $.extend(true, arr);
new_arr = $.grep(new_arr, function(n, i){
return n.weight > 70;
});
alert(new_arr.length); //answer is 1 instead of 2
Ich bin mir nicht sicher wo das problem ist. Kann jemand Punkt aus. Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bist du mit erweitern falsch. Sie können nicht erweitern die new_arr mit einem array. Verlängern hinzufügen von Methoden/Requisiten, um ein Objekt, sondern welche Methoden/Requisiten werden es schaffen, wenn es läuft in deinem array? Dies ist, warum es funktioniert mit der Objekt-wrapper: 1) erweitern Sie erwartet ein Objekt und 2) 'Daten' ist eine Eigenschaft, die Hinzugefügt werden können, um new_arry.
Trotz, in Ihrem zweiten Beispiel, es sieht nicht wie Sie brauchen, um etwas verlängern. Funktioniert das?
Können Sie diese verwenden, um ein Objekt mehr Tiefe,