function solution(files) {
var answer = [];
let testing = [];
files.forEach((file,k)=>{
testing.push([k,...file.split(/([0-9]+)/)]);
});
console.log(testing)
testing = testing.sort((file1, file2)=>{
let test1Upper = file1[1].toUpperCase();
let test2Upper = file2[1].toUpperCase();
if(test1Upper !== test2Upper){
console.log(test1Upper, test2Upper)
if(test1Upper < test2Upper){
return -1;
}
else if(test1Upper > test2Upper){
return 1;
}
}
else {
let num1 = parseInt(file1[2].substring(0,5))
let num2 = parseInt(file2[2].substring(0,5))
if(num1 !== num2){
return num1-num2;
}
else {
return file1[0]-file2[0];
}
}
});
console.log(testing);
return testing.map((item)=>{
item.shift();
return item.join("");
});
}
head의 문자열을 replace해서 해결하려고 했었음
sort는 배열의 원래 상태를 보장하지 않음 => 그래서 정렬 전 index 값을 가지고 나서 정렬 값에 활용할 수 있다는 것을 구글링을 통해 알게됨
역시 공식 문서 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
이 사이트도 정규 표현식을 테스트할 때 괜찮은듯? https://regexr.com/