通过reduce方法计算editableprotable中所有行的value1和value2属性之和,在新增一行时,由于新增行无value1和value2属性,导致数字和undefined相加,结果为nan,如何解决
时间: 2024-04-15 12:27:00 浏览: 87
要解决这个问题,我们可以使用reduce方法的初始值参数来设置初始的累加值,以确保在计算过程中不会出现undefined和数字相加导致结果为NaN的情况。
以下是一个示例的解决方案,假设editableprotable是一个包含多个行对象的数组:
```javascript
const editableprotable = [
{ value1: 1, value2: 2 },
{ value1: 3, value2: 4 },
// ...其他行对象
];
const sum = editableprotable.reduce((acc, row) => {
// 检查行对象中是否存在value1和value2属性
if (row.value1 !== undefined && row.value2 !== undefined) {
// 将value1和value2的值累加到acc上
return acc + row.value1 + row.value2;
}
// 如果不存在value1和value2属性,则直接返回acc
return acc;
}, 0); // 设置初始值为0
console.log(sum); // 输出所有行的value1和value2属性之和
```
在上述代码中,我们使用reduce方法对editableprotable数组进行迭代,并在每一行对象中检查是否存在value1和value2属性。如果存在,则将它们的值累加到累加器(acc)上,否则直接返回累加器。通过设置初始值为0,可以确保在累加过程中不会出现NaN的情况。
阅读全文