본문 바로가기

Programming Language/JavaScript

[JS]arr의 다양한 메소드

arr.map()

배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다.

arr.reduce()

배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환합니다.

Q1.

수를 요소로 갖는 배열을 입력받아 각 요소를 2배 곱한 새로운 배열을 리턴해야 합니다.

function getDoubledElements(arr) {
  if (arr === []){return []}
  return arr.map(x => x*2)
}

Q2.

문자열을 요소로 갖는 배열을 입력받아 각 요소의 길이를 요소로 갖는 새로운 배열을 리턴해야 합니다.

function getLengthOfElements(arr) {
  if (arr === []){return []}
  return arr.map(x => x.length)
}

Q3.

수를 요소로 갖는 배열을 입력받아 각 요소가 2의 배수인지에 대한 정보를 요소로 갖는 새로운 배열을 리턴해야 합니다.

function checkEvenOrNot(arr) {
  if(arr === []){return []};
  return arr.map(function(x){if(x%2 === 0 && x !== 0){return 'ok'}else{return 'no'}})
}

위 세 문제를 보면, arr.map의 인자로 함수가 쓰인다. =>를 사용한 일명 화살표 함수도 쓸 수 있고, function을 사용한 일반적인 함수도 인수로 사용된다. 화살표 함수가 궁금하여 조금 찾아보았다.

각 배열의 요소를 두배하여 새로운 배열을 만들어내는 구문을 여러 경우에서 작성할 수 있다. 결과는 동일하다.

arr.map(x => x*2)
arr.map((x) => x*2)
arr.map(x => {return x*2})
arr.map(funtion(x){return x*2})

Q4.

number 타입을 요소로 갖는 배열을 입력받아 배열의 모든 요소의 합을 리턴해야 합니다.

function computeSumOfAllElements(arr) {
  if (arr === []){return 0}
  else{
  return arr.reduce((pre, cur) => pre + cur)
  }
}

Q5.

number 타입을 요소로 갖는 배열을 입력받아 배열의 모든 요소의 곱을 리턴해야 합니다.

function computeProductOfAllElements(arr) {
  if (arr.length === 0){return 1}
  else {return arr.reduce((acc, value) => acc * value)}
}

Q6.

number 타입을 요소로 갖는 배열을 입력받아 배열의 모든 요소의 평균을 리턴해야 합니다.

function computeAverageOfNumbers(arr) {
  if(arr.length === 0){return 0}
  let total = arr.reduce(function(pre, cur){
    return pre + cur    
  })
  return total / arr.length
}

'Programming Language > JavaScript' 카테고리의 다른 글

[JS]재귀함수 예제1  (0) 2022.05.13
[JS]재귀함수 예제  (0) 2022.05.11
[JS]Function관련 문법  (0) 2022.05.04
[JS]객체, 배열 연습문제  (0) 2022.04.26
[JS]Object관련 문법  (0) 2022.04.25