JavaScript

JS Sorting

ToKor 2020. 12. 18. 01:19

- sort() 함수를 이용(원본 데이터의 변화가 생김)

var strArr = ["hotdog", "hitman", "outgoing", "fourball", "strikout", "foultip", "homerun"]; 
var numArr = [32,12,50,11,18,312,14,32];

/* string  res === strArr */
var res = strArr.sort();   //  ["foultip", "fourball", "hitman", "homerun", "hotdog", "outgoing", "strikout"]

/* string 특정위치부터 정렬시  res === strArr */
var res = strArr.sort(function(a,b){
  var aa = a.substr(3);   //  4번째 자리부터 비교
  var bb = b.substr(3);
  return aa == bb?0:aa<bb?-1:1;
});   //  ["hotdog", "homerun", "outgoing", "strikout", "foultip", "hitman", "fourball"]

/* reverse() */
var res = strArr.reverse();  // ["homerun", "foultip", "strikout", "fourball", "outgoing", "hitman", "hotdog"]


/* number  res === numArr */
var res = numArr.sort();   //  [11, 12, 14, 18, 312, 32, 32, 50] 숫자를 앞자리부터 비교하므로 정렬이 안됨
var res = numArr.sort(function(a,b){return a-b;});   // [11, 12, 14, 18, 32, 32, 50, 312] DESC는 b-a