gpt4 book ai didi

javascript - 无法使用 Javascript 从对象数组中添加行总和和列总和

转载 作者:行者123 更新时间:2023-12-04 09:44:16 25 4
gpt4 key购买 nike

我有一些对象数组,我需要计算每行的总值和每列的总值,最后我将使用 Javascript 为每个对象添加新键。我在下面解释我的代码。

我的输入如下。

let book_data= [ 
{ BranchName: 'Deeksha, Thanisandra, Bengaluru',
Uniform: 2,
Shoes: 1,
Accessories: 1,
Books: 5,
},
{ BranchName: 'Deeksha, Thanisandra, Bengaluru',
Uniform: 2,
Shoes: 3,
Accessories: 4,
Books: 5,
}
]

这里我需要再添加一列 i.e-Grand total到每一行,这应该包含所有键值的总和而不是 BranchName .同样,我需要再追加一个新记录作为最后一行,它应该是每列的总值。我在下面给出了我的示例输出。

enter image description here

我在下面解释我的代码。
for(let i=0; i<book_data.length; i++) {
let grandRowTotal = 0;
for(let key in book_data[i]) {
if(key !== 'BranchName') {
console.log('key', book_data[i][key]);
grandRowTotal += parseInt(book_data[i][key]);
}
}
book_data[i]['Grand Total'] = grandRowTotal;
console.log('grandRowTotal', book_data[i],book_data);

}

根据我的代码,它没有给出预期的结果。根据我上面的示例输出,我在这里需要每行和每列值的总和。

最佳答案

我创建了一个额外的数组来跟踪列。

  • 基本上我在下面做的是循环遍历 book_data 的原始数组.
  • 在每次迭代中,我还循环遍历 columns每本书的数据。
  • 这允许我修改 GrandTotal对象和 RowTotal数据

  • 在您的问题中,您有两个循环来遍历书籍数据。这是没有必要的。由于它是一个数组,您可以简单地使用 forEach数组上的方法。

    希望这可以帮助 :)

        var book_data = [{
    BranchName: 'Deeksha, Thanisandra, Bengaluru',
    Uniform: 2,
    Shoes: 1,
    Accessories: 1,
    Books: 5,
    },
    {
    BranchName: 'Deeksha, Thanisandra, Bengaluru',
    Uniform: 2,
    Shoes: 3,
    Accessories: 4,
    Books: 5,
    }
    ];


    var ColumnTotals = {
    BranchName: 'Grand Total'
    };

    var columns = ['Uniform', 'Shoes', 'Accessories', 'Books'];

    book_data.forEach(b => {
    let rowTotal = 0;
    columns.forEach(i => {
    if (b[i] === undefined) {
    return;
    }

    ColumnTotals[i] = ColumnTotals[i] || 0;
    ColumnTotals[i] += b[i];
    rowTotal += b[i];
    })
    b.RowTotal = rowTotal;
    });

    // Calculate RowTotal for ColumnsTotals
    columns.forEach(i => {
    ColumnTotals.RowTotal = ColumnTotals.RowTotal || 0;
    ColumnTotals.RowTotal += ColumnTotals[i];
    })

    // Adding ColumnTotals to the Array
    book_data.push(ColumnTotals);

    console.log('BookData', book_data);
    console.table(book_data);

    关于javascript - 无法使用 Javascript 从对象数组中添加行总和和列总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62193281/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com