Programming Language/JavaScript
[JS]arr의 다양한 메소드
마손(Mason)
2022. 5. 8. 22:45
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
}