본문 바로가기

Study/JS

배열 순서바꾸기 & 배열 정렬하기

 

splice 이용

let Arr = ['apple', 'banana', 'cherry', 'grape'];
const item = currentList.splice(1, 1) // ['banana']
Arr.splice(2, 0, item[0]) // [ 'apple', 'cherry', 'banana', 'grape' ]  
// item[0]를 to위치로 이동함, 아무것도 삭제하지 않으므로 두번째 argument는 0이다.

맞교환

let fruits = ["Apple", "Banana", "Orange", "Mango"];
let tmp = fruits[2];
fruits[2] = fruits[0];
fruits[0] = tmp
console.log( fruits ); // ["Orange", "Banana", "Apple", "Mango"]

원소이동

let fruits = ["Apple", "Banana", "Orange", "Mango"];
let tmp = fruits[2];
fruits[2] = fruits[0];
fruits[0] = tmp
console.log( fruits ); // ["Orange", "Banana", "Apple", "Mango"]

대입

let arr = [1,2,3,4];
[arr[1], arr[2]] = [arr[2], arr[1]];

console.log(arr);
// [1,3,2,4]
 
 
 

문자열 배열 정렬

문자열 배열의 경우 sort() 호출 시, 알파벳 순서로 정렬됩니다.

오름차순)
const arr = ['kiwi', 'apple', 'melon', 'grape', 'banana'];
arr.sort();
console.log(arr); // [ 'apple', 'banana', 'grape', 'kiwi', 'melon' ]

내림차순)
const arr = ['kiwi', 'apple', 'melon', 'grape', 'banana'];
arr.sort(function (a, b) {
    if (a > b) return -1;
    else if (b > a) return 1;
    else return 0;
  });
console.log(arr);  //[ 'melon', 'kiwi', 'grape', 'banana', 'apple' ]

내림차순2)
const arr = ['kiwi', 'apple', 'melon', 'grape', 'banana'];
arr.sort();
arr.reverse();  // 오름차순 정렬 이 후 뒤집기
console.log(arr); //[ 'melon', 'kiwi', 'grape', 'banana', 'apple' ]

숫자 배열 정렬

const arr = [22, 11, 2, 9, 1, 5];
arr.sort();
console.log(arr); //[ 1, 11, 2, 22, 5, 9 ]

숫자 배열에 sort() 수행 시, 숫자를 문자열로 변환하여 정렬을 합니다. 문자열 11은 2보다 작기 때문에 아래와 같이 숫자 크기대로 정렬되지 않습니다. 따라서 이 방법으로 정렬하면 안됩니다.

오름차순)
const arr = [22, 11, 2, 9, 1, 5];
arr.sort(function (a, b) {
  return a - b;
});
console.log(arr); // [ 1, 2, 5, 9, 11, 22 ]
내림차순)
const arr = [22, 11, 2, 9, 1, 5];
arr.sort((a, b) => b - a);
console.log(arr); // [ 22, 11, 9, 5, 2, 1 ]

객체 배열 비교

객체에서 비교할 요소를 선택하고 크기를 비교하면 됩니다.

 
const arr = [
    {id: 22, name: 'kiwi' },
    {id: 11, name: 'apple' },
    {id: 2, name: 'melon' },
    {id: 9, name: 'grape' }
  ];

arr.sort((a, b) => a.id - b.id);
console.log(arr); // [
  { id: 2, name: 'melon' },
  { id: 9, name: 'grape' },
  { id: 11, name: 'apple' },
  { id: 22, name: 'kiwi' }
]

cf) 내림차순은 b.id - a.id 를 이용한다.

'Study > JS' 카테고리의 다른 글

스프레드 연산자  (1) 2022.09.23
배열 문자열바꾸기 & 배열 중복 제거하기  (0) 2022.09.23
JS 숫자배열의 합 구하기  (0) 2022.09.23
JS 배열 비교하기  (1) 2022.09.23
프로퍼티  (0) 2022.09.22