I want to sort Below array based on name,receiver_id,sender_id and role_id
this.role_id = 3
this.Data = [
{receiver_id: 3,sender_id:4,name: 'john',},
{receiver_id: 4,sender_id:3,name: 'james'},
{receiver_id: 2,sender_id:3,name: 'jane'},
{receiver_id: null,sender_id:null,name: 'charles'},
{receiver_id: null,sender_id:null,name: 'aaron'},
{receiver_id: 2,sender_id:4,name: 'alex'},
{receiver_id: 3,sender_id:2,name: 'david'},
];
I want array objects with receiver_id == role_id or sender_id == role_id to be on top of array and also it should be in alphabetical order. like this
this.Data = [
{receiver_id: 3,sender_id:2,name: 'david'},
{receiver_id: 4,sender_id:3,name: 'james'},
{receiver_id: 2,sender_id:3,name: 'jane'},
{receiver_id: 3,sender_id:4,name: 'john'},
{receiver_id: null,sender_id:null,name: 'aaron'},
{receiver_id: 2,sender_id:4,name: 'alex'},
{receiver_id: null,sender_id:null,name: 'charles'},
];
as of now I can sort based on name only
let colName = 'name'
this.Data.sort((b, a) => a[colName] < b[colName] ? 1 : a[colName] > b[colName] ? -1 : 0)
how to do this?
sender_idorder first. That's the only property that is in order for the whole array.