javascript - 计算器练习未返回正确的输出

标签 javascript sum calculator

我对 JavaScript 的学习还很陌生,我正在完成 Odin 项目的一些练习。我被困在计算器的一个部分,该部分应该对所有参数求和,但如果您使用数组调用该函数,输出会发生变化。我的代码如下:

const sum = function(...numbers) {
  let result = 0;
  for (let each of numbers){
  result += each};
  return result;
};

如果我像这样调用该函数,效果会很完美:

sum(7,11) 并返回 18

但是,其中一项检查是需要将参数作为数组输入:

test('计算两个数字数组的和', () => { Expect(calculator.sum([7,11])).toBe(18);

因此,当它调用这样的函数 sum([7,11]) 时,它会返回 07,11 并且还将其作为字符串返回,因此它不会通过这项检查。我很确定解决方案可能很简单,但我无法找到问题所在。

const sum = function(...numbers) {
  let result = 0;
  for (let each of numbers){
  result += each};
  return result;
};

console.log(sum(7,11))
console.log(sum([7,11]))

最佳答案

原因是 ...numbers 表示数组,并且您传递了像 [7,11] 这样的参数,因此它是一个嵌套数组,在本例中,您需要使用numbers[0]代替

您可以引用how-to-check-if-array-is-multidimensional-jquery以获得更多详细信息。

const sum = function(...numbers) {
  let result = 0;
  let isSubArray = Array.isArray(numbers[0]);
  let data = isSubArray ? numbers[0]:numbers;
  for (let each of data){
    result += each
  };
  return result;
};
console.log(sum([7,11]))
console.log(sum(7,11))

关于javascript - 计算器练习未返回正确的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73904703/

相关文章:

java - 如何让简单的计算器在android上的EditText中返回最终结果

javascript - 获取动态元素来更改文本

javascript - JS - 如何获取重定向的URL

javascript - 即使我将“记住我”设置为 false,firebase 也会自动登录

mysql - 如何对 SQL 中 CASE-WHEN 中具有相同参数的不同行的值求和

java - 如果考试成绩为负,如何让用户在第二个 for 循环中重新输入考试成绩?

javascript - 如何查看用于显示隐藏的json数据的html代码?

Mysql 2 SUM 和不同的分组依据

algorithm - 如何对楼层数序列求和?

java - JavaFX 中的退格按钮