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

자바스크립트에서 배열의 모든 요소를 음수로 변환하는 방법

배열에 담긴 모든 숫자를 음수로 바꿔야 하는 경우가 종종 있습니다. 예를 들어 다음과 같은 배열이 있다고 가정해 보겠습니다.

const arr = [7, 2, 3, 4, 5, 7, 8, 12, -12, 43, 6];

우리가 작성해야 할 함수는 위 배열을 입력받아, 모든 요소를 그에 대응하는 음수 값으로 변환한 새로운 배열을 반환하는 것입니다(예: 4 → -4, 6 → -6). 단, 이미 음수인 요소는 원래 값을 그대로 유지해야 합니다.

구현 예제

이러한 기능은 자바스크립트의 reduce() 메서드를 활용하면 간결하게 구현할 수 있습니다. 각 요소가 0보다 작은지 확인하고, 음수가 아니라면 -1을 곱해 부호를 뒤집는 방식입니다.

const arr = [7, 2, 3, 4, 5, 7, 8, 12, -12, 43, 6];

const changeToNegative = (arr) => {
   return arr.reduce((acc, val) => {
      const negative = val < 0 ? val : val * -1;
      return acc.concat(negative);
   }, []);
};

console.log(changeToNegative(arr));

동작 원리

reduce() 메서드는 배열의 각 요소를 순회하면서 누적 배열(acc)에 결과를 하나씩 추가합니다. 삼항 연산자(val < 0 ? val : val * -1)를 사용해 이미 음수인 값은 그대로 두고, 양수인 값만 부호를 반전시킵니다. 최종적으로 변환된 값들로 이루어진 새로운 배열이 반환됩니다.

출력 결과

콘솔에 출력되는 결과는 다음과 같습니다.

[
   -7, -2, -3, -4, -5,
   -7, -8, -12, -12, -43,
   -6
]