晚上好,我在 Javascript 中得到了以下代码,用户可以在其中选择查看将所有大于零的数字相加或计算乘积的结果,直到用户选择的那个(问题不要求输入验证这就是为什么我没有添加任何验证条件):let number = readlineSync.question("Please enter an integer greater than 0: ");let sumOrProd = readlineSync.question('Enter "s" to compute the sum, or "p" to compute the product. ');let arraynumbers = [...Array(Number(number)+1).keys()];let sumNumbers = (array) => array.reduce((acc,x)=> acc + x, 0);let multNumbers = (array) => array.reduce((acc,x)=> acc * x, 1);let userdecision = sumOrProd.toLowerCase() === 's' ? sumNumbers(arraynumbers) : multNumbers(arraynumbers);console.log(userdecision);sumNumbers()工作正常,但multNumbers()总是返回零,我不明白为什么(!?)。我已经检查了文档和其他示例,但我看不出它为什么不起作用。有人可以帮我解决这个问题吗?
1 回答

Helenr
TA贡献1780条经验 获得超4个赞
您的数组 arraynumbers 以 0 开头,只需删除第一项:
let number = 10;
let sumOrProd = 'p';
// Enter "s" to compute the sum, or "p" to compute the product.
let arraynumbers = [...Array(Number(number)+1).keys()];
arraynumbers.shift();
let sumNumbers = array => array.reduce((acc,x)=> acc + x, 0);
let multNumbers = array => array.reduce((acc,x)=> acc * x, 1);
let userdecision = sumOrProd.toLowerCase() === 's' ? sumNumbers(arraynumbers) : multNumbers(arraynumbers);
console.log(userdecision);
添加回答
举报
0/150
提交
取消