Filtrage d'un Tableau d'Objets à l'aide de Jquery $.grep sans Objet Wrapper
De filtrage fonctionne très bien pour un objet (data
) s'enroulant autour d'un tableau d'objets:
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
Cependant, le filtrage, sans que l'objet wrapper qui ne fonctionne pas.
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
Je ne suis pas sûr de l'endroit où est le problème. Quelqu'un peut-il remarquer. Merci!
OriginalL'auteur Question Overflow | 2011-12-15
Vous devez vous connecter pour publier un commentaire.
Vous utilisez étendre de manière incorrecte. Vous ne pouvez pas prolonger la new_arr avec un tableau. Mesure d'ajouter des méthodes/accessoires à un objet, mais quels sont les moyens/les accessoires, il sera de créer lorsqu'il s'exécute dans votre tableau? C'est pourquoi il travaille avec l'objet wrapper: 1) étendre attend un objet et 2) "données" est une propriété qui peut être ajouté à new_arry.
En dépit, dans votre deuxième exemple, il ne regarde pas comme vous avez besoin de prolonger quoi que ce soit. Ce travail?
OriginalL'auteur Dane O'Connor
Vous pouvez l'utiliser pour un objet plus profond,
OriginalL'auteur David Lopes