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

JavaScript로 두 문자열의 차이점 개수 구하기

이번 글에서는 두 문자열을 입력받아 같은 위치에 있는 문자 중 서로 다른 것의 개수를 세는 JavaScript 함수를 작성해 보겠습니다.

같은 인덱스에 있는 두 문자가 일치하지 않으면, 해당 요소는 서로 다른 것으로 간주됩니다. 예를 들어 다음과 같은 두 문자열이 있다고 가정해 보겠습니다.

const str1 = 'Hello world!!!';
const str2 = 'Hellp world111';

위 두 문자열을 비교하면 네 번째 자리의 'o'와 'p', 그리고 마지막 세 글자 '!!!'와 '111'이 서로 다르므로, 총 4개의 불일치 지점이 존재합니다.

예제 코드

다음은 두 문자열의 차이점 개수를 계산하는 전체 코드입니다.

const str1 = 'Hello world!!!';
const str2 = 'Hellp world111';

const dissimilarity = (str1 = '', str2 = '') => {
    let count = 0;
    for(let i = 0; i < str1.length; i++){
        if(str1[i] === str2[i]){
            continue;
        }
        count++;
    }
    return count;
};

console.log(dissimilarity(str1, str2));

실행 결과

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

4

코드 동작 원리

  • 매개변수 기본값: dissimilarity 함수는 기본값이 빈 문자열('')인 두 개의 매개변수를 받아, 인자가 전달되지 않아도 오류 없이 동작합니다.
  • 반복문 처리: count 변수를 0으로 초기화한 뒤, 첫 번째 문자열의 길이만큼 반복하면서 각 인덱스의 문자를 하나씩 비교합니다.
  • 불일치 판별: 두 문자가 같으면 continue로 건너뛰고, 다르면 count를 1씩 증가시킵니다.
  • 결과 반환: 반복이 끝나면 누적된 count 값을 반환하여 최종 차이점 개수를 알려줍니다.

참고로 이 방식은 첫 번째 문자열의 길이를 기준으로 비교하므로, 두 문자열의 길이가 다를 경우 짧은 쪽 길이까지만 비교된다는 점을 유의하시기 바랍니다.