[javascript] Infinity와 NaN의 배열 처리 방법

자바스크립트에서 Infinity와 NaN은 숫자로 취급되지만, 계산 및 배열 처리 시 주의해야 합니다. 이번 블로그에서는 Infinity와 NaN 값을 포함하는 배열을 다루는 방법에 대해 알아보도록 하겠습니다.

Infinity

Infinity는 무한대를 나타내는 값으로, 양의 무한대와 음의 무한대로 구분됩니다. 다음은 Infinity의 예시입니다.

const positiveInfinity = Infinity;
const negativeInfinity = -Infinity;

배열 내에 Infinity가 포함된 경우 정렬이나 연산 시 원하는 결과를 얻기 어려울 수 있습니다. 배열 내의 Infinity를 검사하여 처리하거나 제거해야 할 수 있습니다.

NaN (Not a Number)

NaN은 숫자가 아님을 나타내는 값으로, 유효하지 않은 숫자 연산 시 발생합니다. 다음은 NaN의 예시입니다.

const notANumber = NaN;
const result = 10 / "문자열";

NaN은 “==” 또는 “===”을 사용하여 비교할 수 없으므로, 배열에서 NaN을 검사하거나 처리할 때 주의해야 합니다.

배열 처리 방법

Infinity와 NaN 제거

const numbers = [1, 2, Infinity, 4, 5, NaN];
const filteredNumbers = numbers.filter(num => Number.isFinite(num));
// filteredNumbers: [1, 2, 4, 5]

Infinity와 NaN 대체

const numbers = [1, 2, Infinity, 4, 5, NaN];
const replacedNumbers = numbers.map(num => Number.isFinite(num) ? num : 0);
// replacedNumbers: [1, 2, 0, 4, 5, 0]

결론

Infinity와 NaN은 숫자로 취급되지만, 배열 처리 시 예상치 못한 결과를 초래할 수 있습니다. 따라서 배열에서 Infinity와 NaN을 처리할 때는 주의가 필요합니다. 필요에 따라 제거하거나 대체하여 안정적인 처리를 할 수 있도록 해야 합니다.

이상으로 Infinity와 NaN의 배열 처리 방법에 대해 알아보았습니다.

참고문헌: