gpt4 book ai didi

javascript - 返回数组平方中所有偶数的总和 (javascript)

转载 作者:行者123 更新时间:2023-12-01 00:19:35 24 4
gpt4 key购买 nike

正如标题所说,我试图获取一个数字数组,然后返回数组中所有偶数的平方和。

我可以让我的函数返回给定数组中所有偶数的总和,但无法让它返回偶数总和的平方。

这是我到目前为止所拥有的:

let numStr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const squareEvenNumbers = (numStr) => {
let sum = 0;
for (let i = 0; i < numStr.length; i++) {
if (numStr[i] % 2 === 0) {
sum = Math.pow(sum + numStr[i], 2);
}
}
return sum
}

console.log(squareEvenNumbers(numStr));

最佳答案

您只需将数组中的当前项计算为 2 次方,而不是整个总和:

let numStr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const squareEvenNumbers = (numStr) => {
let sum = 0;
for (let i = 0; i < numStr.length; i++) {
if (numStr[i] % 2 === 0) {
sum += Math.pow(numStr[i], 2);
}
}
return sum
}

console.log(squareEvenNumbers(numStr));

或者,更简洁地说:

let numStr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const squareEvenNumbers = arr => arr
.filter(num => num % 2 === 0)
.reduce((a, num) => a + num ** 2, 0);

console.log(squareEvenNumbers(numStr));

或者,仅迭代数组一次:

let numStr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const squareEvenNumbers = arr => arr
.reduce((a, num) => a + (num % 2 === 0 && num ** 2), 0);

console.log(squareEvenNumbers(numStr));

关于javascript - 返回数组平方中所有偶数的总和 (javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59524162/

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