Rumah > hujung hadapan web > tutorial js > Bagaimanakah Underscore.js Mengumpul dan Menjumlahkan Data dengan Cekap dalam Susunan Objek?

Bagaimanakah Underscore.js Mengumpul dan Menjumlahkan Data dengan Cekap dalam Susunan Objek?

Barbara Streisand
Lepaskan: 2024-12-28 03:56:10
asal
730 orang telah melayarinya

How Can Underscore.js Efficiently Group and Sum Data in an Array of Objects?

KumpulanBy yang Cekap untuk Tatasusunan Objek menggunakan Underscore.js

Menghimpun data dalam tatasusunan objek adalah penting untuk mengagregat dan menganalisis maklumat. Ini amat penting apabila bekerja dengan data berstruktur. Antara pelbagai kaedah, Underscore.js menawarkan penyelesaian yang berkuasa untuk mengumpulkan objek berdasarkan kriteria tertentu.

Dalam kes ini, anda ingin mengumpulkan objek mengikut pelbagai kombinasi medan, seperti Fasa dan Langkah, sambil juga menjumlahkan nilai yang sepadan. Underscore.js menyediakan fungsi groupBy yang boleh mengendalikan tugas ini dengan cekap.

Berikut ialah contoh cara menggunakan Underscore.js untuk mengumpulkan tatasusunan objek mengikut Fasa:

const data = [
    { Phase: "Phase 1", Step: "Step 1", Task: "Task 1", Value: "5" },
    { Phase: "Phase 1", Step: "Step 1", Task: "Task 2", Value: "10" },
    { Phase: "Phase 1", Step: "Step 2", Task: "Task 1", Value: "15" },
    { Phase: "Phase 1", Step: "Step 2", Task: "Task 2", Value: "20" },
    { Phase: "Phase 2", Step: "Step 1", Task: "Task 1", Value: "25" },
    { Phase: "Phase 2", Step: "Step 1", Task: "Task 2", Value: "30" },
    { Phase: "Phase 2", Step: "Step 2", Task: "Task 1", Value: "35" },
    { Phase: "Phase 2", Step: "Step 2", Task: "Task 2", Value: "40" }
];

const groupedByPhase = _.groupBy(data, 'Phase');
Salin selepas log masuk

Operasi ini menghasilkan objek yang kuncinya ialah nilai Fasa yang berbeza, dan nilainya ialah tatasusunan objek yang dimiliki oleh setiap fasa. Untuk mengira jumlah nilai bagi setiap fasa, anda boleh menggunakan fungsi pengurangan seperti berikut:

const phaseTotals = _.map(groupedByPhase, function(phaseData) {
    return {
        Phase: phaseData[0].Phase,
        Value: _.reduce(phaseData, function(memo, object) { 
            return memo + Number(object.Value); 
        }, 0)
    };
});
Salin selepas log masuk

Begitu juga, anda boleh mengumpulkan objek dengan mana-mana gabungan medan menggunakan prinsip yang sama. Dengan memanfaatkan fungsi groupBy Underscore.js, anda boleh mengumpulkan data anda dengan cekap, memberikan cerapan berharga ke dalam set data anda.

Atas ialah kandungan terperinci Bagaimanakah Underscore.js Mengumpul dan Menjumlahkan Data dengan Cekap dalam Susunan Objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan