풀스택 개발자 역할에 대한 기술 면접을 진행하는 동안 익숙하면서도 예상치 못한 어려운 상황에 직면했습니다. 모든 일이 순조롭게 진행되고 있었는데, 면접관이 처음에는 간단해 보이는 과제를 제시했습니다.
"이 파일 이름을 파일 탐색기에 표시되는 방식으로 오름차순으로 정렬할 수 있나요?" 물었습니다.
'케이크 조각'이라고 생각했어요. 정렬은 매우 기본적인 작업이므로 아무런 문제도 예상하지 못했습니다. 하지만 코드를 작성하기 시작하자마자 난관에 부딪혔습니다. 파일 이름이 여기저기 적혀 있었는데 어떤 것들은 단순했지만 어떤 것들은 숫자와 문자, 그리고 이 두 가지를 조합한 것들도 있었습니다.
다음과 같은 기본 문자열 정렬 방법을 사용해 보았습니다.
array.sort();
그러나 이는 이상한 결과를 낳았다. 숫자는 사전순으로 정렬되었으며(즉, “1”로 시작하므로 “10”이 “2” 앞에 옴), 혼합된 영숫자 문자열의 순서가 올바르지 않았습니다. 엉망이었고, 파일 탐색기에서 보는 자연스러운 순서와 전혀 닮지 않았습니다.
시계가 똑딱거리고 압력이 가중되는 것을 느낄 수 있었습니다. 숫자를 적절하게 처리하기 위해 다양한 사용자 정의 비교 기능을 시도해 보았으나 딸깍거리는 소리가 나지 않았습니다.
그런데 얼마 전에 읽은 간단한 요령인 localeCompare가 생각났습니다.
localeCompare를 사용하면 인간이 정렬하는 방식을 모방하는 방식으로 문자열을 비교할 수 있습니다. 숫자 옵션과 함께 사용하면 숫자를 텍스트로 비교하는 대신 실제 숫자로 처리합니다. 제가 사용한 코드는 다음과 같습니다.
array.sort((a, b) => a.localeCompare(b, 정의되지 않음, { 숫자: true, 민감도: 'base' }));
이 한 줄의 코드는 파일 탐색기와 똑같이 파일 이름을 정렬했습니다. 숫자는 자연스럽게 정렬되었으며 문자/숫자 조합은 원활하게 처리되었습니다.
코드를 실행하자마자 화면에 올바른 순서가 나타나는 것을 보았습니다. 파일 이름은 파일 탐색기에서와 마찬가지로 오름차순으로 완벽하게 정렬되었습니다. 면접관에게 해결책을 설명하자 미소가 지어졌고, 면접관은 제가 문제를 해결한 방식에 만족해 보였습니다.
처음에는 복잡한 문제처럼 느껴졌던 문제가 결국 간단하고 우아한 솔루션으로 해결되었습니다. 때로는 가장 효과적인 도구가 가장 단순할 수도 있으며 이러한 작은 요령을 아는 것이 큰 변화를 가져올 수 있다는 점을 상기시켜 주었습니다.
위 내용은 단순성에 대한 교훈: 인터뷰에서 전문가처럼 파일 정렬하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!