javascript 如何对对象内部的数组中的所有元素求和并显示到DOM或HTML元素?[关闭]

fcwjkofz  于 5个月前  发布在  Java
关注(0)|答案(2)|浏览(86)

**已关闭。**此问题需要debugging details。目前不接受回答。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答问题。
2天前关闭。
Improve this question
我不能向浏览器显示对象内部数组元素的总和。
下面是我的JavaScript代码:

const products = {
    productName: [],
    description: [],
    quantity: [],
    unitOfMeasure: []
}
let countLog = products.quantity;`

function sumArray(sum) {

    let displaySumEl = document.getElementById('display-sum');
    sum = countLog.reduce((total, item) => total + item);
    displaySumEl.textContent = `Total: `;
    displaySumEl.textContent += `${parseInt(sum)}`;


    console.log(countLog);

}

字符串
这里的问题是sum变量只显示数组中的数字,而不是countLog变量中的数字之和。

ruarlubt

ruarlubt1#

function sumArray(sum) {
let displaySumEl = document.getElementById('display-sum');
 sum = countLog.reduce((total, item) => total + item, 0);
displaySumEl.textContent = `Total: ${sum}`;
console.log(countLog);}

字符串
reduce函数采用第二个参数作为total的初始值

brtdzjyr

brtdzjyr2#

提供的代码试图使用reduce()方法对products.quantity数组的元素求和,但数量数组中似乎没有值。如果您有一个空数组,reduce()函数将抛出错误。
若要修复此问题,请在调用reduce()函数之前确保数量数组中有值。如果数组可能为空,请为reduce()函数提供初始值以避免错误。
下面是sumArray函数的修改版本:

function sumArray() {
    let displaySumEl = document.getElementById('display-sum');
    let sum = countLog.reduce((total, item) => total + item, 0); // Added initial value 0
    displaySumEl.textContent = `Total: ${sum}`;

    console.log(countLog);
}

字符串
在这个修改后的函数中,reduce()以初始值0开始。如果countLog是一个空数组,reduce()将返回这个初始值,并且不会抛出错误。
记住在用数字填充products.quantity数组之后调用sumArray()函数。

相关问题