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

자바스크립트(JavaScript)로 배열의 연속된 숫자 확인하기

배열에 100, 101, 102처럼 이어지는 연속된 숫자가 포함되어 있는지 확인하려면 reduce() 메서드를 활용하면 됩니다. 배열의 모든 요소가 연속된 숫자라면 true를 반환하고, 하나라도 끊기면 false를 반환합니다.

예제 코드

const sequceIsConsecutive = (obj) =>
Boolean(obj.reduce((output, lastest) => (output ?
(Number(output.number) + 1 === Number(lastest.number) ? lastest : false)
: false)));

console.log("Is Consecutive=" + sequceIsConsecutive([
  { number: '100' },
  { number: '101' },
  { number: '102' }
]));

console.log("Is Consecutive=" + sequceIsConsecutive([
  { number: '100' },
  { number: '102' },
  { number: '104' }
]));

프로그램 실행 방법

위 프로그램을 실행하려면 터미널에서 다음 명령어를 입력합니다.

node fileName.js

여기서는 파일 이름이 demo126.js라고 가정합니다.

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

PS C:\Users\Amit\JavaScript-code> node demo126.js
Is Consecutive=true
Is Consecutive=false

코드 동작 원리

reduce()는 배열의 요소를 처음부터 끝까지 순회하며 누적값(output)과 현재 요소(lastest)를 비교합니다. 이전 요소의 number 값에 1을 더한 값이 현재 요소의 number 값과 일치하면 연속된 것으로 판단하고, 중간에 한 번이라도 불일치하면 이후 모든 단계에서 false가 전달됩니다. 최종 결과는 Boolean()으로 감싸 명확하게 true 또는 false로 변환됩니다.

첫 번째 배열은 100 → 101 → 102로 숫자가 1씩 증가하므로 true가 출력되고, 두 번째 배열은 100 → 102 → 104처럼 2씩 건너뛰기 때문에 false가 출력됩니다.