Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 배열 요소의 부호 반전하기

이번 글에서는 양수와 음수가 섞여 있는 배열을 입력받아, 각 요소의 부호를 제자리에서 반전시키는 JavaScript 함수를 작성해 보겠습니다. 즉, 양수는 같은 크기의 음수로, 음수는 같은 크기의 양수로 변환하는 것입니다.

접근 방법

배열의 각 요소에 -1을 곱하면 부호가 반전됩니다. 이때 원본 배열 자체를 수정하는 '제자리(in-place)' 방식으로 처리할 수도 있고, 새로운 배열을 반환하는 방식으로 처리할 수도 있습니다.

먼저 forEach()를 사용해 원본 배열을 직접 수정하는 방법을 살펴보겠습니다.

예제 코드

const arr = [12, 5, 3, -1, 54, -43, -2, 34, -1, 4, -4];

const changeSign = arr => {
    arr.forEach((el, ind) => {
        arr[ind] *= -1;
    });
};

changeSign(arr);
console.log(arr);

출력 결과

콘솔에는 다음과 같은 결과가 출력됩니다.

[
    -12, -5,  -3, 1, -54,
     43,  2, -34, 1,  -4,
      4
]

대체 방법: map() 활용

원본 배열을 변경하지 않고 새로운 배열을 만들고 싶다면 map() 메서드를 사용하는 것이 더 깔끔합니다.

const arr = [12, 5, 3, -1, 54, -43, -2, 34, -1, 4, -4];

const newArr = arr.map(num => -num);
console.log(newArr);
// [-12, -5, -3, 1, -54, 43, 2, -34, 1, -4, 4]

정리: 배열의 모든 요소 부호를 반전하려면 각 요소에 -1을 곱하면 됩니다. 원본 배열을 유지해야 한다면 map()을, 메모리 효율을 위해 제자리 수정이 필요하다면 forEach()를 사용하는 것이 좋습니다.