Étant donné un tableau d'objets et un objet filtre, l'objectif est de filtrer et simplifier le tableau en fonction de plusieurs conditions spécifiées dans le filtre. Cependant, un problème spécifique survient lorsque le filtre contient plusieurs propriétés.
Considérez le segment de code suivant :
function filterUsers(users, filter) {
var result = [];
for (var prop in filter) {
if (filter.hasOwnProperty(prop)) {
// Iterate over the array
for (var i = 0; i Dans la solution proposée, le problème se produit lorsque le filtre contient plusieurs propriétés. Plus précisément, lors de la deuxième itération, la comparaison entre users[i][prop] et filter[prop] est incorrecte. Pour résoudre ce problème, nous pouvons modifier le code comme suit :
function filterUsers(users, filter) {
var result = [];
for (var prop in filter) {
if (filter.hasOwnProperty(prop)) {
// Apply filter on the array
users = users.filter((user) => user[prop] === filter[prop]);
}
}
return result;
}
Dans cette version, nous utilisons la méthode de filtrage intégrée des tableaux pour appliquer les conditions de filtre de manière dynamique. Cela garantit que seuls les objets qui satisfont à toutes les conditions spécifiées sont inclus dans le résultat.
Exemple d'utilisation
Avec la solution mise à jour, le processus de filtrage fonctionnera comme prévu :
var users = [{
name: 'John',
email: '[email protected]',
age: 25,
address: 'USA'
}, {
name: 'Tom',
email: '[email protected]',
age: 35,
address: 'England'
}, {
name: 'Mark',
email: '[email protected]',
age: 28,
address: 'England'
}];
var filter = {
address: 'England',
name: 'Mark'
};
var filteredUsers = filterUsers(users, filter);
console.log(filteredUsers); // Output: [{ name: 'Mark', email: '[email protected]', age: 28, address: 'England' }]
Cette solution résout le problème où plusieurs conditions de filtrage n'étaient pas étant appliqué correctement, garantissant que le tableau filtré résultant reflète avec précision les critères spécifiés.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3