이번 글에서는 두 문자열을 입력받아 같은 위치에 있는 문자 중 서로 다른 것의 개수를 세는 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 값을 반환하여 최종 차이점 개수를 알려줍니다.
참고로 이 방식은 첫 번째 문자열의 길이를 기준으로 비교하므로, 두 문자열의 길이가 다를 경우 짧은 쪽 길이까지만 비교된다는 점을 유의하시기 바랍니다.