我的数学函数返回 NaN

问题描述 投票:0回答:1

所以我一直要求更改我的代码以简化我的功能,但现在我已经简化了它们,它们现在只返回 NaN 并且我真的不明白为什么会这样,当输入是数字时?

// the purpose of this script is to execute different functions on an array of 3 integers// 
const input = [6, 25, 11];
const findSum = input.reduce((acc, num) => acc + num, 0);
console.log(findSum);

// each function has been assigned parameters to execute //
const subsFrom = (num1, num2, num3) => num1 - num2 - num3;
const subNum = subsFrom(input);
console.log(subNum);
// then call the function and display the answer //

const multiBy = (num1, num2, num3) => num1 * num2 * num3;
const multiNum = multiBy(input)
console.log(multiNum);

const divBy = (findSum, num1, num2, num3) => findSum / num1 / num2 / num3;
const divNum = divBy(findSum, input);
console.log(divNum);

javascript arrays function math
1个回答
0
投票

将数组解构为参数时,需要在参数列表中添加方括号。

const subsFrom = ([num1, num2, num3])
const multiBy = ([num1, num2, num3])
const divBy = (findSum, [num1, num2, num3])

因为输入是一个被传递到函数调用中的数组。

// the purpose of this script is to execute different functions on an array of 3 integers// 
const input = [6, 25, 11];
const findSum = input.reduce((acc, num) => acc + num, 0);
console.log(findSum);

// each function has been assigned parameters to execute //
const subsFrom = ([num1, num2, num3]) => num1 - num2 - num3;
const subNum = subsFrom(input);
console.log(subNum);
// then call the function and display the answer //

const multiBy = ([num1, num2, num3]) => num1 * num2 * num3;
const multiNum = multiBy(input)
console.log(multiNum);

const divBy = (findSum, [num1, num2, num3]) => findSum / num1 / num2 / num3;
const divNum = divBy(findSum, input);
console.log(divNum);

或者,您可以传播:

// the purpose of this script is to execute different functions on an array of 3 integers// 
const input = [6, 25, 11];
const findSum = input.reduce((acc, num) => acc + num, 0);
console.log(findSum);

// each function has been assigned parameters to execute //
const subsFrom = (num1, num2, num3) => num1 - num2 - num3;
const subNum = subsFrom(...input);
console.log(subNum);
// then call the function and display the answer //

const multiBy = (num1, num2, num3) => num1 * num2 * num3;
const multiNum = multiBy(...input)
console.log(multiNum);

const divBy = (findSum, num1, num2, num3) => findSum / num1 / num2 / num3;
const divNum = divBy(findSum, ...input);
console.log(divNum);

© www.soinside.com 2019 - 2024. All rights reserved.