wwwrrrxxx
wwwrrrxxx

Reputation: 195

multi conditions for sort function javascript

I want to sort by BOTH day and order.

Condition 1: sort by day (1-7)

Condition 2: sort by order (1-5)

It must sort day first and then order.

I can easily sort by day using sort function. I can't sort together same time.

Data to sort

[
 {id: 1,
  day: 4,
  order: 2      
 },
 {id: 2,
  day: 2,
  order: 1,
 },
 {id: 3,
  day: 1,
  order: 5
 },
 {id: 4,
  day: 5,
  order: 5,
 } 
]

Result I expect:

[
 {id: 3,
  day: 1,
  order: 5
 },
 {id: 2,
  day: 2,
  order: 1,
 },
 {id: 1,
  day: 4,
  order: 2      
 },
 {id: 4,
  day: 5,
  order: 5,
 } 
]

Upvotes: 1

Views: 31

Answers (1)

Hien Nguyen
Hien Nguyen

Reputation: 18975

You can sort by

arr.sort((a, b) => a.day - b.day || a.order - b.order);

let arr = [
 {id: 1,
  day: 4,
  order: 2      
 },
 {id: 2,
  day: 2,
  order: 1,
 },
 {id: 3,
  day: 1,
  order: 5
 },
 {id: 4,
  day: 5,
  order: 5,
 } 
]
arr.sort((a, b) => a.day - b.day || a.order - b.order);

console.log(arr);

Upvotes: 1

Related Questions