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!

Schreibe einen Kommentar