JavaScript est un langage de programmation très important. Il est largement utilisé dans le développement Web, la programmation côté serveur et dans d'autres domaines. L'une des exigences courantes consiste à additionner les propriétés d'un objet, ce qui est également le sujet de cet article.
Avant de commencer, regardons un exemple simple. Supposons qu'il existe un objet personne, qui possède deux attributs, nom et âge. Maintenant nous voulons trouver la somme des âges de cet objet, comment faire ?
var person1 = {name: "Alice", age: 23} var person2 = {name: "Bob", age: 25} var person3 = {name: "Charlie", age: 27} var sum = person1.age + person2.age + person3.age; console.log(sum); // 输出结果为:75
Dans l'exemple ci-dessus, nous obtenons la somme en ajoutant l'attribut âge de chaque personne une par une à la somme variable. Cependant, cette méthode n’est pas réalisable lorsque le nombre d’attributs est important. Par conséquent, nous devons utiliser des méthodes plus efficaces et plus pratiques.
Ensuite, nous démontrerons trois méthodes différentes pour trouver la somme de toutes les propriétés numériques d'un objet. Ces trois méthodes sont :
Nous combinerons chaque méthode est expliqué en détail.
Méthode 1 : Méthode de sommation en boucle simple
Cette méthode est la méthode la plus directe. Elle parcourt tous les attributs de l'objet, filtre les attributs avec des valeurs numériques, puis les ajoute un par un. Voici l'implémentation du code :
function sumProperties(obj) { var sum = 0; for (var prop in obj) { if (typeof obj[prop] === 'number') { sum += obj[prop]; } } return sum; } var person = { name: 'Alice', age: 23, salary: 5000.00 }; var total = sumProperties(person); console.log(total); // 输出结果为:5023
Le code ci-dessus définit une fonction sumProperties() et son paramètre est un objet. Dans la fonction, nous utilisons une boucle for...in pour parcourir toutes les propriétés de l'objet. Si la valeur de l'attribut est un nombre, ajoutez-le à la somme des variables. Enfin, la fonction renvoie la somme variable comme valeur de retour à l'appelant.
Cette méthode est simple et claire, adaptée aux objets à petite échelle. Mais si vous souhaitez traiter des objets à grande échelle (comme des centaines de propriétés), cela prendra beaucoup de temps.
Méthode 2 : Combiner Object.keys() avec la méthode array réduire()
Object.keys() est une méthode très pratique en JavaScript. Elle est utilisée pour obtenir tous les noms de propriétés d'un objet (hors propriétés héritées). ). Combiné avec la méthode array réduire(), nous pouvons facilement additionner les propriétés de l'objet. Voici l'implémentation du code :
function sumProperties(obj) { return Object.keys(obj).reduce(function(sum, key) { return typeof obj[key] === 'number' ? sum + obj[key] : sum; }, 0); } var person = { name: 'Alice', age: 23, salary: 5000.00 }; var total = sumProperties(person); console.log(total); // 输出结果为:5023
Dans le code ci-dessus, la fonction sumProperties() est similaire à la méthode précédente. Dans la fonction, nous utilisons la méthode Object.keys() pour obtenir un tableau de tous les noms de propriétés de l'objet. Ensuite, nous appelons la méthode réduire() du tableau et ajoutons chaque élément du tableau à la somme variable. Si la valeur de l'attribut n'est pas un nombre, nous ne faisons rien avec la somme variable et la laissons telle quelle. Enfin, nous renvoyons la somme variable à l'appelant comme valeur de retour de la fonction.
Méthode 3 : Combiner la boucle for...in avec la méthode hasOwnProperty()
Cette méthode combine la boucle for...in avec la méthode hasOwnProperty() en JavaScript pour filtrer les propriétés héritées de l'objet. L'implémentation du code est la suivante :
function sumProperties(obj) { var sum = 0; for (var prop in obj) { if (obj.hasOwnProperty(prop)) { if (typeof obj[prop] === 'number') { sum += obj[prop]; } } } return sum; } var person = { name: 'Alice', age: 23, salary: 5000.00 }; var total = sumProperties(person); console.log(total); // 输出结果为:5023
Dans le code ci-dessus, nous avons modifié le code de la première méthode. Dans la boucle for...in, nous utilisons la méthode hasOwnProperty() pour filtrer les propriétés héritées. Cette méthode est plus générale et convient à la plupart des situations. Cependant, il convient de noter que cette méthode ne peut pas gérer le cas où le nom de l'attribut contient des caractères spéciaux tels que des espaces.
Conclusion
Les trois méthodes ci-dessus peuvent répondre aux besoins de la plupart des cas. Il convient toutefois de noter que ces méthodes ne sont pas parfaites et qu’elles peuvent poser des problèmes dans certains cas particuliers. Mais si nous comprenons mieux leur fonctionnement et quelles sont leurs forces et leurs faiblesses, nous pourrons mieux les utiliser.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!