문제

나의 풀이 방법
function solution(arr) {
let result = [];
arr.map((item) => {
if (item < 50 && item % 2 === 1) {
return result.push(item * 2);
} else if (item >= 50 && item % 2 === 0) {
return result.push(item / 2);
} else {
return result.push(item);
}
});
return result;
}
solution(arr)
다른 사람의 풀이
function solution(arr) {
return arr.map(a => {
if(a >= 50 && a %2 ===0) return Math.floor(a/2)
if(a < 50 && a %2 === 1) return a*2
return a
})
}
map과 filter의 차이점이 뭐야?
map() 함수는 배열의 각 요소에 대해 지정된 함수를 호출하고, 반환된 값을 사용하여 새로운 배열을 생성한다.
map() 함수를 사용하면 기존 배열과 길이가 같은 새로운 배열을 생성하며, 이 새로운 배열의 각 요소는 기존 배열의 각 요소를 변환한 값이 된다.
filter() 함수는 배열에서 특정 조건을 충족하는 요소만 추출하여 새로운 배열을 생성한다.
filter() 함수를 사용하면 새로운 배열의 길이는 기존 배열의 길이보다 작거나 같을 수 있다.