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

문자열에서 두 문자 사이의 거리 구하는 방법 – JavaScript

문제 이해하기

JavaScript로 첫 번째 인수로 하나의 문자열을, 그다음 인수로 단일 문자 두 개를 받는 함수를 작성해야 합니다. 이 함수는 첫 번째 인수로 전달된 문자열 안에서 두 문자가 서로 떨어져 있는 거리(인덱스 차이)를 반환해야 합니다.

예를 들어 다음과 같은 세 개의 문자열이 주어졌다고 가정해 보겠습니다.

const str = 'Disaster management';
const a = 'i', b = 't';

이 경우 출력값은 4여야 합니다. 문자열에서 'i'와 't' 사이의 거리가 4이기 때문입니다.

코드 작성하기

다음은 위 문제를 해결하는 코드입니다.

const str = 'Disaster management';
const a = 'i', b = 't';

const distanceBetween = (str, a, b) => {
    const aIndex = str.indexOf(a);
    const bIndex = str.indexOf(b);

    // 두 문자 중 하나라도 문자열에 없으면 false 반환
    if(aIndex === -1 || bIndex === -1){
        return false;
    };

    return Math.abs(aIndex - bIndex);
};
console.log(distanceBetween(str, a, b));

코드 설명

  • indexOf() 메서드: 각 문자가 문자열 내에서 처음 등장하는 위치(인덱스)를 찾는 데 사용됩니다.
  • 예외 처리: 찾고자 하는 문자가 문자열에 존재하지 않으면 indexOf()는 -1을 반환합니다. 이 경우 함수는 유효한 거리를 계산할 수 없으므로 false를 반환합니다.
  • Math.abs(): 두 인덱스의 차이에 절댓값을 적용하여 어떤 문자가 앞에 오더라도 항상 양수인 거리를 구할 수 있습니다.

출력 결과

위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.

4