gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 01:28:17 26 4
gpt4 key购买 nike

我对 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com