단일 조건
const data = [
{ age: 19, name: '김씨' },
{ age: 25, name: '박씨' },
{ age: 18, name: '김씨' },
{ age: 19, name: '나씨' },
];
data.sort((a, b) => a.age - b.age);
해당 데이터에서 정렬을 시켜주면, age(나이)가 같은 값은 정렬이 되지 않습니다. 이를 해결하기 위해선 다중 조건으로 정렬을 해줘야 합니다.
다중 조건
const data = [
{ age: 19, name: '김씨' },
{ age: 25, name: '박씨' },
{ age: 18, name: '김씨' },
{ age: 19, name: '나씨' },
];
data.sort((a, b) => a.age - b.age || a.name.localeCompare(b.name));
age(나이) 값이 같은 경우에는 이름순으로 정렬하는 코드, 즉 다중 조건으로 정렬시키는 코드입니다.
앞부분 조건이 음수, 양수가 아닌 0(서로 같다)의 결과가 나오게 되면 OR연산자에 의해서 두 번째 조건으로 판단하게 됩니다.
코드 풀이
data.sort((a, b) => 첫번째 조건 || 두번째 조건);
// 0, 음수, 양수
0, 음수, 양수의 값이 나오는 조건만을 이용해서 정렬을 시킬 수 있다면 다음과 같은 코드로 구현할 수 있습니다.
console.log(-1 || 'test');
// -1
console.log(0 || 'test');
// 'test'
OR 연산자는 앞부분이 참일 경우, 앞부분을 그 외에는 뒷부분을 반환해주는 연산자입니다.
참고자료