프로그래머스
{"sun":"u", "bed":"e", "car":"a"}로 저장하는 객체를 만든다["u", "e", "a"]로 저장하는 배열을 만들고 오름차순 정렬한다function solution(strings, n) {
    strings.sort(); //먼저 문자열 배열을 정렬시킨다
    const obj = {}; //문자열과 알파벳 저장하는 객체
    const arr = []; //알파벳 저장하는 배열
    const result = []; 
    for(let i=0;i<strings.length;i++){
        obj[strings[i]] = strings[i][n];
        arr.push(strings[i][n]);
    }
    arr.sort();
    for(let i=0;i<arr.length;i++){
        for(const el in obj){
            if(arr[i]===obj[el]){
                result.push(el);
                delete obj[el];
            }
        }
    }
    return result;
}
s1.localeCompare(s2); //s1이 s2보다 정렬상 전에 온다면 음수, 후에 온다면 양수, 같다면 0s1[n].localeCompare(s2[n]); //위와 같은 방법으로 s1의 n번째 인덱스값과 2의 n번째 인덱스 값을 비교한다.function solution(strings, n){
  return strings.sort((s1, s2) => s1[n] === s2[n] ? s1.localeCompare(s2) : s1[n].localeCompare(s2[n]));
}
function solution(strings, n){
  var answer = [];
  for(let i=0; i<strings.length; i++){
    const letter = strings[i][n]; //n번째 글자
    strings[i] = letter + strings[i]; //n번째 글자를 strings[i] 앞에 붙여준다
  }
  strings.sort(); // 요소가 변경된 strings 배열 정렬 ===> 같은 문자로 시작하더라도 그 다음 글자로 비교해서 오름차순으로 정렬됨.
  for(let i=0; i<strings.length; i++){
    strings[i] = strings[i].replace(strings[i][0],""); // 앞에 추가된 문자 배열에 넣어주기
    answers.push(strings[i])
  }
  return answer;
}
a[n]과 b[n]을 직접 비교한다function solution(strings, n){
  var answer = [];
  strings.sort((a,b) => {
    if(a[n]>b[n]) return 1
    if(a[n]<b[n]) return -1
    if(a[n]===b[n]){
      if(a>b) return 1;
      if(a<b) return -1;
      return 0
    }
  })
  return strings;
}      
String.prototype.localeCompare()
referenceStr.localeCompare(compareString[, locales[, options]])
기존 문자열과 비교했을때 비교 대상 문자열이 정렬상 전에 오면 음수를, 이후에 오면 양수를, 혹은 같은 순서라면 0을 리턴한다
- 단, 브라우저와 브라우저 버전에에 따라 리턴값이 -1, 1이 아닐 수도 있으므로 (-2, 2 등) 음수, 양수, 0으로 구분하는 것이 적절하다
 
String.prototype.replace()
var newStr = str.replace(regexp|substr, newSubstr|function)
- 교체된 새로운 문자열을 리턴시킨다
 
프로그래머스의 문제들을 풀면서 고차함수를 잘 활용할 수 있어야 한다는 것이다. 나는 객체와 배열을 만들고 이중반복문을 돌리면서 문제를 해결했는데, 첫번째 풀이를 보니 sort와 localeCompare 함수를 적절히 사용해서 간단히 해결했다.  localeCompare 함수는 이 문제를 통해 처음 알게 되었다. sort가 양수, 음수, 0으로 정렬시키므로 localeCompare 함수를 적절히 사용할 수 있었다. 
sort는 첫번째 문자열이 일치할때 두번째 문자열로 크기를 비교하므로 n번째 인덱스 값을 앞에 붙여주면 처음에는 그 값으로 크기를 비교하고, 일치한다면 원래 첫번째 글자로 비교한다.
가장 직관적으로 쉽게 푼 방법같다. a[n]===b[n]인 경우 세가지 경우로 구분해 a와 b 크기를 비교할 수 있다.