sort() 함수

아래와 같은 배열을 순서대로 정렬하고 싶다면

const arr = [3,8,2,4,5,1]

arr.sort()
// [1,2,3,4,5,8]

하지만 👇 아래와 같은 상황에는 정렬이 되지 않는다.


const arr = [1,10,13,2,5,43,55]

arr.sort()
// [1,10,13,2,43,5,55]

위 내용처럼 앞글자만 순서로 정렬되기 때문에 이렇게 바꿔준다.

오름차순

const arr = [1,10,13,2,5,43,55]

arr.sort(function(a,b){
  if(a > b) return 1
  else if(a === b ) return 0
  else return -1
})
// 오름차순
/// [ 1, 2, 5, 10, 13, 43, 55 ]

내림차순

  
  const arr = [1,10,13,2,5,43,55]

arr.sort(function(a,b){
  if(a < b) return 1  // 여기만 바꿔주자
  else if(a === b ) return 0
  else return -1
})

문자열 정렬

문자열도 위와 같이 정렬하면 된다.


const arr = ["Roy","Daisy","Chris","Wendy","Adam","Ava"]

arr.sort()
// [ 'Adam', 'Ava', 'Chris', 'Daisy', 'Roy', 'Wendy' ]

or

* 오름차순
arr.sort(function(a,b){
  if(a > b) return 1
  else if(a === b ) return 0
  else return -1
})
// [ 'Adam', 'Ava', 'Chris', 'Daisy', 'Roy', 'Wendy' ]

* 내림차순
arr.sort(function(a,b){
  if(a < b) return 1
  else if(a === b ) return 0
  else return -1
})

//[ 'Wendy', 'Roy', 'Daisy', 'Chris', 'Ava', 'Adam' ]

객체 정렬

아래와 같은 객체를 rank 순으로 정렬하고 싶다면

const arr = [
  {rank: 1 , food:"paprica"},
  {rank: 3 , food:"chicken"},
  {rank: 5, food:"sushi"},
  {rank: 4 , food:"soup"},
  {rank: 2 , food:"pasta"},
  {rank: 6 , food:"pizza"},
]
// rank 오름차순
arr.sort(function(a,b){
  if (a.rank > b.rank)  // rank 를 기준으로 정렬
    return 1
  else if (a.rank === b.rank)
    return 0
  if (a.rank < b.rank)
    return -1
})

/*
[
  { rank: 1, food: 'paprica' },
  { rank: 2, food: 'pasta' },
  { rank: 3, food: 'chicken' },
  { rank: 4, food: 'soup' },
  { rank: 5, food: 'sushi' },
  { rank: 6, food: 'pizza' }
]
*/

  // rank 내림차순
arr.sort(function(a,b){
  if (a.rank > b.rank)  // rank 를 기준으로 정렬
    return -1
  else if (a.rank === b.rank)
    return 0
  if (a.rank < b.rank)
    return 1
})

/*
[
  { rank: 6, food: 'pizza' },
  { rank: 5, food: 'sushi' },
  { rank: 4, food: 'soup' },
  { rank: 3, food: 'chicken' },
  { rank: 2, food: 'pasta' },
  { rank: 1, food: 'paprica' }
]
*/

profile
Never never never give up!

0개의 댓글