Некоторые альтернативные реализации, если я правильно понимаю проблему.
function sumSquares(n) {
const squares = []
let sum = 0
for(let x = 1; x <= n; x++) {
squares.push(x*x)
}
for(let x = 0; x < n; x++) {
sum += squares[x]
}
return sum
}
const result = sumSquares(5) // 55
console.log(result)
Альтернативно: создать массив длиной n
. Разложите массив в новый массив для заполнения ключей.
Используйте ключи как целые числа; используйте map
, чтобы возвести их в квадрат, а затем reduce
, чтобы сложить их.
const sumSquares = (n) =>
Object.keys([...Array(n+1)]).map(k => k*k).reduce((acc, c) => acc+c, 0)
const result = sumSquares(5)
console.log(result) // 55
Исправление существующей реализации:
function squaredSum(number) {
var squaredNumberArray = []
for (var i = number; i > 0; i--) {
squaredNumberArray.push(i ** 2)
}
var sum = function(squaredNumberArray) {
var summation = 0
for (var x = 0; x < squaredNumberArray.length; x++) {
summation = summation + squaredNumberArray[x]
}
return summation
}
return sum(squaredNumberArray)
}
console.log(squaredSum(5)) // 55