Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Bagaimana untuk menjumlahkan atribut javascript

Bagaimana untuk menjumlahkan atribut javascript

PHPz
PHPzasal
2023-04-24 14:46:37945semak imbas

JavaScript ialah bahasa pengaturcaraan yang sangat penting yang digunakan secara meluas dalam pembangunan web, pengaturcaraan sebelah pelayan dan bidang lain. Salah satu keperluan biasa ialah menjumlahkan sifat dalam objek, yang juga menjadi topik artikel ini.

Sebelum kita mula, mari lihat contoh mudah. Katakan ada orang objek, yang mempunyai dua atribut nama dan umur. Sekarang kita ingin mencari jumlah umur objek ini. Bagaimana kita harus melakukannya?

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

Dalam contoh di atas, kita memperoleh jumlah dengan menambah atribut umur setiap orang satu demi satu kepada jumlah berubah. Walau bagaimanapun, kaedah ini tidak boleh dilaksanakan apabila bilangan atribut adalah besar. Oleh itu, kita perlu menggunakan beberapa kaedah yang lebih cekap dan mudah.

Seterusnya, kami akan menunjukkan tiga kaedah berbeza untuk mencari jumlah semua sifat berangka dalam objek. Tiga kaedah ini ialah:

  1. Kaedah penjumlahan gelung mudah
  2. Object.keys() digabungkan dengan kaedah array reduce()
  3. untuk...dalam Gelung digabungkan dengan kaedah hasOwnProperty()

Kami akan menerangkan setiap kaedah secara terperinci.

Kaedah 1: Kaedah penjumlahan gelung mudah

Kaedah ini ialah kaedah paling langsung merentasi semua atribut dalam objek, menapis atribut dengan nilai berangka, dan kemudian membandingkannya satu dengan. satu. Berikut ialah pelaksanaan kod:

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

Kod di atas mentakrifkan fungsi sumProperties(), yang parameternya ialah objek. Dalam fungsi tersebut, kami menggunakan gelung for...in untuk melelaran melalui semua sifat dalam objek. Jika nilai atribut ialah nombor, tambahkannya pada jumlah pembolehubah. Akhirnya, fungsi mengembalikan jumlah pembolehubah sebagai nilai pulangan kepada pemanggil.

Kaedah ini mudah dan jelas, sesuai untuk objek berskala kecil. Tetapi jika anda ingin berurusan dengan objek berskala besar (seperti ratusan hartanah), ini akan memakan masa yang sangat lama.

Kaedah 2: Menggabungkan Object.keys() dengan kaedah array reduce()

Object.keys() ialah kaedah yang sangat praktikal dalam JavaScript Ia digunakan untuk mendapatkan semua kunci masuk objek. Nama harta (tidak termasuk harta warisan). Digabungkan dengan kaedah array reduce(), kita boleh menjumlahkan sifat dalam objek dengan mudah. Berikut ialah pelaksanaan kod:

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

Dalam kod di atas, fungsi sumProperties() adalah serupa dengan kaedah sebelumnya. Dalam fungsi, kami menggunakan kaedah Object.keys() untuk mendapatkan tatasusunan semua nama harta dalam objek. Kemudian, kami memanggil kaedah reduce() tatasusunan dan menambah setiap item dalam tatasusunan kepada jumlah pembolehubah. Jika nilai atribut bukan nombor, kami tidak melakukan apa-apa dengan jumlah pembolehubah dan biarkan ia seperti sedia ada. Akhir sekali, kami mengembalikan jumlah berubah kepada pemanggil sebagai nilai pulangan fungsi.

Kaedah tiga: gabungkan untuk...dalam gelung dengan kaedah hasOwnProperty()

Kaedah ini menggabungkan untuk...dalam gelung dengan kaedah hasOwnProperty() dalam JavaScript untuk menapis Alih keluar sifat yang diwarisi daripada objek. Pelaksanaan kod adalah seperti berikut:

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

Dalam kod di atas, kami mengubah suai kod kaedah pertama. Dalam gelung untuk...dalam, kami menggunakan kaedah hasOwnProperty() untuk menapis sifat yang diwarisi. Kaedah ini lebih umum dan sesuai untuk kebanyakan situasi. Walau bagaimanapun, perlu diingatkan bahawa kaedah ini tidak boleh mengendalikan kes di mana nama atribut mengandungi aksara khas seperti ruang.

Kesimpulan

Tiga kaedah di atas boleh memenuhi keperluan kebanyakan kes. Walau bagaimanapun, perlu diingatkan bahawa kaedah ini tidak sempurna dan ia boleh menyebabkan masalah dalam beberapa kes khas. Tetapi jika kita lebih memahami cara mereka bekerja, dan apakah kekuatan dan kelemahan mereka, kita boleh menggunakannya dengan lebih baik.

Atas ialah kandungan terperinci Bagaimana untuk menjumlahkan atribut javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn