JavaScript ist eine sehr wichtige Programmiersprache. Sie wird häufig in der Webentwicklung, der serverseitigen Programmierung und anderen Bereichen verwendet. Eine der häufigsten Anforderungen besteht darin, die Eigenschaften eines Objekts zu summieren, was auch das Thema dieses Artikels ist.
Bevor wir beginnen, schauen wir uns ein einfaches Beispiel an. Angenommen, es gibt eine Objektperson, die zwei Attribute hat: Name und Alter. Jetzt wollen wir die Summe des Alters dieses Objekts ermitteln. Wie geht das?
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
Im obigen Beispiel erhalten wir die Summe, indem wir das Altersattribut jeder Person einzeln zur Variablensumme addieren. Diese Methode ist jedoch nicht anwendbar, wenn die Anzahl der Attribute groß ist. Daher müssen wir einige effizientere und bequemere Methoden verwenden.
Als nächstes demonstrieren wir drei verschiedene Methoden, um die Summe aller numerischen Eigenschaften in einem Objekt zu ermitteln. Diese drei Methoden sind:
Wir werden jede Methode kombinieren wird ausführlich erklärt.
Methode 1: Einfache Schleifensummierungsmethode
Diese Methode ist die direkteste Methode. Sie durchläuft alle Attribute im Objekt, filtert die Attribute mit numerischen Werten heraus und fügt sie dann einzeln hinzu. Das Folgende ist die Code-Implementierung:
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
Der obige Code definiert eine sumProperties()-Funktion und ihr Parameter ist ein Objekt. In der Funktion verwenden wir eine for...in-Schleife, um alle Eigenschaften im Objekt zu durchlaufen. Wenn der Wert des Attributs eine Zahl ist, addieren Sie ihn zur Variablensumme. Abschließend gibt die Funktion die Variable sum als Rückgabewert an den Aufrufer zurück.
Diese Methode ist einfach und klar und eignet sich für kleine Objekte. Wenn Sie jedoch mit großen Objekten (z. B. Hunderten von Immobilien) umgehen möchten, ist dies sehr zeitaufwändig.
Methode 2: Kombinieren von Object.keys() mit der Array-Reduction()-Methode
Object.keys() ist eine sehr praktische Methode in JavaScript. Sie wird verwendet, um alle Eigenschaftsnamen in einem Objekt abzurufen (mit Ausnahme geerbter Eigenschaften). ). In Kombination mit der Array-Methode Reduce() können wir die Eigenschaften in einem Objekt einfach summieren. Das Folgende ist die Code-Implementierung:
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
Im obigen Code ähnelt die Funktion sumProperties() der vorherigen Methode. In der Funktion verwenden wir die Methode Object.keys(), um ein Array aller Eigenschaftsnamen im Objekt abzurufen. Dann rufen wir die Methode „reduce()“ des Arrays auf und fügen jedes Element im Array zur Variablensumme hinzu. Wenn der Wert des Attributs keine Zahl ist, machen wir nichts mit der Variablensumme und lassen sie unverändert. Abschließend geben wir die Variable sum als Rückgabewert der Funktion an den Aufrufer zurück.
Methode 3: Kombinieren Sie die for...in-Schleife mit der hasOwnProperty()-Methode
Diese Methode kombiniert die for...in-Schleife mit der hasOwnProperty()-Methode in JavaScript, um geerbte Eigenschaften im Objekt herauszufiltern. Die Code-Implementierung lautet wie folgt:
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
Im obigen Code haben wir den Code der ersten Methode geändert. In der for...in-Schleife verwenden wir die Methode hasOwnProperty(), um geerbte Eigenschaften herauszufiltern. Diese Methode ist allgemeiner und für die meisten Situationen geeignet. Es ist jedoch zu beachten, dass diese Methode nicht den Fall verarbeiten kann, dass der Attributname Sonderzeichen wie Leerzeichen enthält.
Fazit
Die oben genannten drei Methoden können die Anforderungen der meisten Fälle erfüllen. Es ist jedoch zu beachten, dass diese Methoden nicht perfekt sind und in einigen Sonderfällen Probleme verursachen können. Aber wenn wir besser verstehen, wie sie funktionieren und welche Stärken und Schwächen sie haben, können wir sie besser nutzen.
Das obige ist der detaillierte Inhalt vonSo summieren Sie Javascript-Attribute. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!