[연습문제] 배열 내 배열 정렬하기




배열 내 배열 정렬하기

문제이미지

나의 풀이

function solution(rows) {
  const first = rows.sort((x, y) => x[0] - y[0]).map(row => row[0]);
  const third = rows.sort((x, y) => y[2] - x[2]).map(row => row[0]);

  const hash = rows.reduce((acc, cur) => {
    acc[cur[0]] = cur[1];
    return acc;
  }, {});
  const tempSecond = rows.map(row => row[1]).sort();
  const hashArr = Object.keys(hash);

  let second = [];
  tempSecond.forEach(v => {
    hashArr.find(key => {
      if (hash[key] === v) {
        second.push(+key);
      }
    });
  });
  return [first, second, third];
}

console.log(
  solution([
    [1, 'john', 38],
    [2, 'alex', 188],
    [3, 'ben', 302],
  ])
);

console.log(
  solution([
    [51, 'a', 11],
    [56, 'aa', 382],
    [17, 'ab', 6],
  ])
);

객체 내 key 별 정렬은 해봤는데, 배열 내 배열은 처음 해봤다.
이렇게 접근하는게 맞는지 잘 모르겠지만, 문자열일 때 sort가 되지 않아서,
hash 를 만들어서, key로 다시 잡근했다.
이게 맞는걸까…? 싶다