카테고리 없음

자바스크립트 소팅

개발자R 2022. 6. 20. 15:53
반응형

출처 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

 

일반적인 소팅

array.sort();

 

나만의 기준으로 소팅하기

let items = [
  { name: 'Edward', value: 21 },
  { name: 'Sharpe', value: 37 },
  { name: 'And', value: 45 },
  { name: 'The', value: -12 },
  { name: 'Magnetic', value: 13 },
  { name: 'Zeros', value: 37 }
];

// value 기준으로 정렬
items.sort(function (a, b) {
  if (a.value > b.value) {
    return 1;
  }
  if (a.value < b.value) {
    return -1;
  }
  // a must be equal to b
  return 0;
});

//화살표함수로 구현
items.sort((a, b) => {
  if(a.value > b.value) {
   	return 1;
  }
  if (a.value < b.value) {
    return -1;
  }
  // a must be equal to b
  return 0;
});

//따로 함수를 빼도 됨
const compare = (a, b) =>  {
  if(a.value > b.value) {
   	return 1;
  }
  if (a.value < b.value) {
    return -1;
  }
  // a must be equal to b
  return 0;
}

items.sort(compare)


// name 기준으로 정렬
items.sort(function(a, b) {
  let nameA = a.name.toUpperCase(); // ignore upper and lowercase
  let nameB = b.name.toUpperCase(); // ignore upper and lowercase
  if (nameA < nameB) {
    return -1;
  }
  if (nameA > nameB) {
    return 1;
  }

  // 이름이 같을 경우
  return 0;
});

오름차순이 기본이고, 내림차순으로 하려면 1과 -1의 위치만 바꾸어주면 됨.

반응형