function solution(arr, n) {
let answer = [];
if (arr.length % 2 == 0) {
arr.map((x,idx) => {
if (idx % 2 != 0) {
answer.push(arr[idx] + n)
} else answer.push(arr[idx])
})
} else {
arr.map((x,idx) => {
if (idx % 2 == 0) {
answer.push(arr[idx] + n)
} else answer.push(arr[idx])
})
}
return answer;
}
const solution = (arr, n) => arr.map((num, idx) => (
arr.length % 2 !== idx % 2
? num + n
: num
))
arr.map((num, idx) =>
: 배열 arr
의 각 요소에 대해 반복 작업을 수행하기 위함. 배열의 각 요소를 순회하며 지정된 함수를 호출하고 그 결과로 새로운 배열을 생성한다.
arr.length % 2 !== idx % 2
: 현재 처리 중인 요소의 인덱스idx
와 배열의 길이 arr.length
를 비교한다.
⭐️⭐️⭐️ 배열의 길이와 현재 요소의 인덱스를 비교하는 것은 현재 요소가 홀수 번째 요소 혹은 짝수 번째 요소인지 확인하는 용도.
arr.length % 2
는 배열arr
의 길이가 홀수인지 아닌지를 판단한다.
홀수인 경우 1을 반환하고 짝수인 경우 0을 반환한다.idx % 2
는 현재 처리 중인 요소의 인덱스가 홀수 위치에 있는지 아닌지를 판단한다. 홀수 위치인 경우 1을 반환하고 짝수 위치인 경우 0을 반환합니다.➡️
arr.length % 2 !== idx % 2
는 이 두 조건이 서로 다르면, 현재 요소가 처리해야 하는 위치와 일치하지 않는 경우를 나타낸다.
? num + n : num
: 배열의 길이와 idx의 짝홀 경우의 수가 다른 경우 (true
), 해당 요소에 num
에 n
을 더하고, 그렇지 않으면 num
그대로를 반환.
배열의 길이와 인덱스의 숫자가 각각 홀수의 경우가 다른 경우를
arr.length % 2 !== idx % 2
로 비교해서 푸는 모습이 굉장히 인상적이다!