Square(n) Sum

Complete the square sum method so that it squares each number passed into it and then sums the results together.

For example: squareSum([1, 2, 2]) should return 9 because 1^2 + 2^2 + 2^2 = 9.

문제 풀이

function squareSum(numbers){
  return numbers.reduce((a,b) => a + Math.pow(b,2), 0)
}

깔끔한 문제풀이

function squareSum(numbers){
  return numbers.reduce(function(sum, n){
    return (n*n) + sum;
  }, 0)
}

중요개념

  • 화살표 함수

    • 화살표 표기법은 간단히 말해 function이라는 단어와 중괄호를 줄일 수 있다.
    • function을 생략해도 된다.
    • 함수에 매개변수가 단 하나 뿐이라면 괄호도 생략할 수 있다.
    • 함수 바디가 표현식이라면 중괄호와 return을 생략할 수 있다.
    • 화살표 함수는 익명 함수를 만들어 다른 곳에 전달하려 할 때 가장 유용하다.
  • reduce(array methods)

    • reduce라는 이름은 배열를 연산하여 하나의 값으로 변환하기 때문에 지어짐
    • 하지만 reduce가 반환하는 값 하나는 객체일 수도 있고, 다른 배열일 수도 있다.
    • reduce를 통해 map, filter의 동작을 대부분 대신할 수 있다.
    • reduce의 첫번째 매개변수는 accumulator이다.
    • reduce는 배열 메서드 중에서 가장 범용적이고 강력한 메서드이다.