我有一个名为“今天和昨天”的开关按钮。我有一个值数组。今天单击时,应该将今天的数组值求和,昨天单击时,应该将今天和昨天的值相加并显示。
我在下面遇到一个问题
public val1;
public val2;
public val3;
public val4;
data = [];
if (value == 'a') {
val1 = arr.reduce((acc, cur) => acc + Number(cur)); // add values inside
array
} else if (value == 'b') {
val2 = arr.reduce((acc, cur) => acc + Number(cur));
} else if (value == 'c') {
val3 = arr.reduce((acc, cur) => acc + Number(cur));
} else if (value == 'd') {
val4 = arr.reduce((acc, cur) => acc + Number(cur));
}
this.data.push(this.val1, this.val2, this.val3, this.val4);
最终
arr = [5, undefined, 5,5]
arr = [15,10,25,10]
当我今天单击时,其显示[5, undefined, 5,5]
是正确的
当我单击昨天时,其显示[20,10,30,15]
(今天+昨天)是正确的。当我再次单击 today 时,其显示的[5, 10, 5,5]
// 10从上一个数组中追加,但其他值没有。我的预期输出值为[5, undefined, 5,5]
。
答案 0 :(得分:1)
添加
val1=null;
val2=null;
val3=null;
val4=null;
先于if,然后期望null
代替undefied
答案 1 :(得分:0)
JavaScript对象持有对对象的引用,因此解决问题的最佳方法是在迭代过程之前分配 null 值。