다음과 같은 문자열 배열이 있다고 가정해 보겠습니다. -
const arr = [ '.0', '.1', '.2', '.4', '.2.1', '.3', '.4.1', '.5', '.5.1.5' ];
우리는 그러한 배열을 취하는 JavaScript 함수를 작성해야 합니다. 우리 함수는 단순히 배열을 오름차순으로 정렬해야 합니다(일반인이 볼 수 있음).
이는 '.0', '.1', '.2' 등의 문자열을 의미합니다. 따라서 정렬 후 배열은 다음과 같아야 합니다. -
const output = [ '.0', '.1', '.2.1', '.2, '.3', '.4', '.4.1', '.5', '.5.1.5' ];
예시
이에 대한 코드는 -
const arr = [ '.0', '.1', '.2', '.4', '.2.1', '.3', '.4.1', '.5', '.5.1.5' ];
const compare = (a, b) => {
if (a === b) {
return 0
};
const aArr = a.split("."), bArr = b.split(".");
for (let i = 0; i < Math.min(aArr.length, bArr.length); i++) {
if (parseInt(aArr[i]) < parseInt(bArr[i])) {
return -1
};
if (parseInt(aArr[i]) > parseInt(bArr[i])) {
return 1
};
}
if (aArr.length < bArr.length) {
return -1
};
if (aArr.length > bArr.length) {
return 1
};
return 0;
};
arr.sort(compare);
console.log(arr); 출력
콘솔의 출력은 -
[ '.0', '.1', '.2', '.2.1', '.3', '.4', '.4.1', '.5', '.5.1.5' ]