Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah Saya Boleh Mengumpul dan Menjumlahkan Objek dalam Tatasusunan oleh Harta Tertentu Menggunakan jQuery?

Bagaimanakah Saya Boleh Mengumpul dan Menjumlahkan Objek dalam Tatasusunan oleh Harta Tertentu Menggunakan jQuery?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-17 09:30:03599semak imbas

How Can I Group and Sum Objects in an Array by a Specific Property Using jQuery?

Mengumpul dan Menjumlahkan Objek dalam Tatasusunan

Untuk mengumpulkan tatasusunan objek mengikut sifat tertentu dan meringkaskan harta lain dalam jQuery, anda boleh menggunakan langkah berikut:

1. Gelung dan Kurangkan:
Gunakan fungsi $.each() untuk lelaran ke atas tatasusunan dan untuk setiap objek, semak sama ada objek dengan sifat kumpulan yang sama sudah wujud dalam tatasusunan hasil. Jika tidak, cipta objek baharu dengan sifat kumpulan dan kuantiti awal 0. Tambahkan objek ini pada tatasusunan hasil.

2. Jumlahkan Sifat:
Dalam gelung, tambahkan nilai harta yang anda mahu jumlahkan (cth., qty) daripada objek semasa kepada objek yang sepadan dalam tatasusunan hasil. Ini secara berkesan mengumpul kuantiti untuk setiap kumpulan.

Berikut ialah contoh kod menggunakan jQuery:

var array = [
  { Id: "001", qty: 1 },
  { Id: "002", qty: 2 },
  { Id: "001", qty: 2 },
  { Id: "003", qty: 4 }
];

var result = [];
$.each(array, function(i, obj) {
  var idx = result.findIndex(x => x.Id === obj.Id);
  if (idx === -1) {
    result.push({ Id: obj.Id, qty: 0 });
    idx = result.length - 1;
  }
  result[idx].qty += obj.qty;
});

console.log(result);

Kod ini akan log keluaran berikut:

[
  { Id: "001", qty: 3 },
  { Id: "002", qty: 2 },
  { Id: "003", qty: 4 }
]

Dengan mengikut langkah ini, anda boleh mengumpulkan dan menjumlahkan sifat objek dalam tatasusunan dengan berkesan, membolehkan anda mengekstrak cerapan berharga daripada data anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengumpul dan Menjumlahkan Objek dalam Tatasusunan oleh Harta Tertentu Menggunakan jQuery?. 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