[javascript] 자바스크립트 선택정렬 (자바스크립트 배열 정렬)
// 파일객체 배열 이름순 정렬하기
function sortFileArray(_fileArr) {
if (_fileArr == null || _fileArr.length < 2) {
return _fileArr;
}
var fileCount = _fileArr.length;
var tempObj = null;
for (var i=0; i<fileCount; i++) {
for (var k=i+1; k<fileCount; k++) {
// 문자열 배열인 경우
// if (checkShouldChangeOrder(_fileArr[i], _fileArr[k])) {
// 파일 객체 배열인 경우, 객체.name 순으로 정렬
if (checkShouldChangeOrder(_fileArr[i].name, _fileArr[k].name)) {
tempObj = _fileArr[i];
_fileArr[i] = _fileArr[k];
_fileArr[k] = tempObj;
}
}
}
return _fileArr;
}
// 문자열 순서 바꿔야 하는지 검사. 순서 바꿔야 하는 경우 true 리턴
function checkShouldChangeOrder(_str1, _str2) {
if (_str1 == null) {
_str1 = “”;
}
if (_str2 == null) {
_str2 = “”;
}
var len1 = _str1.length;
var len2 = _str2.length;
// 공통길이 계산
var comLen = len1;
if (comLen > len2) {
comLen = len2;
}
var ch1 = 0;
var ch2 = 0;
for (var i=0; i<comLen; i++) {
ch1 = parseInt(_str1.charCodeAt(i), 10);
ch2 = parseInt(_str2.charCodeAt(i), 10);
if (ch1 > ch2) {
return true;
} else if (ch1 < ch2) {
return false;
}
}
// 공통길이까지 내용 같을 경우 길이순 정렬
if (len1 > len2) {
return true;
} else if (len1 < len2) {
return false;
}
return false;
}