我的代码运行良好,直到预期返回结果为止 - 它不会累加用户输入的任何值。有什么帮助吗?
a = (prompt("a:"));
b = (prompt("b:"));
c = (prompt("c:"));
negativeSum = Number(0);
positiveSum = Number(0);
var test = [a, b, c];
for (i = 0; i < test.length; i++) {
if (isNaN(test[i])) {
alert(test[i] + " : incorrect input.");
}
else
if (test[i] < 0) {
alert(test[i] + " : positive.")
negativeSum = Number(test[i]++);
}
else {
alert(test[i] + " : positive.")
positiveSum = Number(test[i]++);
}
}
alert(positiveSum + " : sum of +ve elements");
alert(negativeSum + " : sum of -ve elements");
答案 0 :(得分:2)
不是负数之和总是小于正数之和。 如果你谈论绝对差异。 而不是尝试
if (test[i] < 0) {
alert(test[i] + " : positive.")
negativeSum += Number(test[i]);
}
else {
alert(test[i] + " : positive.")
positiveSum += Number(test[i]);
}
//after the loop
return Math.abs(negativeSum) > positiveSum;
答案 1 :(得分:1)
有几件事 - 不需要Number(0)
- 只需使用0
即可。
该行:
positiveSum = Number(test[i]++);
只需将test[i]
+ 1(这是增量++
运算符所做的内容)的值分配给positiveSum
。它不会将其添加到positiveSum
(negativeSum
也是如此。
这应该更好:
negativeSum = 0;
positiveSum = 0;
var test = [a, b, c];
for (i = 0; i < test.length; i++) {
if (isNaN(test[i])) {
alert(test[i] + " : incorrect input.");
}
else
if (test[i] < 0) {
alert(test[i] + " : positive.")
negativeSum += test[i];
}
else {
alert(test[i] + " : positive.")
positiveSum += test[i];
}
}
在我的代码中行:
negativeSum += test[i];
相当于:
negativeSum = negativeSum + test[i];
答案 2 :(得分:1)
你没有总结任何东西,你正在增加你输入的每个数字。你想要positiveSum + =(每个数字)。
在进行比较之前,您还应该将元素转换为数字,然后再进行比较。