I have this data format in the below order. The data is corresponding to there employeeId
data={
1200: [
{
employeeName: Harish,
task: task1,
employeeId: '1200'
},
{
employeename: Harish,
task: task2,
employeeId: '1200'
},
{
employeename: Harish,
task: task3,
employeeId: '1200'
}
]
1205: [
{
employeeName: Akshay,
task: task1,
employeeId: '1205'
},
{
employeename: Akshay,
task: task2,
employeeId: '1205'
},
],
1210: [
{
employeeName: Abhay,
task: task1,
employeeId: '1210'
},
{
employeename: Abhay,
task: task2,
employeeId: '1210'
},
]
}
I want the output to be sorted name wise and the output should be in the same format. for the above input the output should be
data={
1210: [
{
employeeName: Abhay,
task: task1,
employeeId: '1210'
},
{
employeename: Abhay,
task: task2,
employeeId: '1210'
},
]
1205: [
{
employeeName: Akshay,
task: task1,
employeeId: '1205'
},
{
employeename: Akshay,
task: task2,
employeeId: '1205'
},
],
1200: [
{
employeeName: Harish,
task: task1,
employeeId: '1200'
},
{
employeename: Harish,
task: task2,
employeeId: '1200'
},
{
employeename: Harish,
task: task3,
employeeId: '1200'
}
]
}
I have tried like this
function sort() {
const data = {
1200: [
{
employeeName: 'Harish',
task: 'task1',
employeeId: '1200'
},
{
employeeName: 'Harish',
task: 'task2',
employeeId: '1200'
},
{
employeeName: 'Harish',
task: 'task3',
employeeId: '1200'
},
],
1205: [
{
employeeName: 'Akshay',
task: 'task1',
employeeId: '1205'
},
{
employeeName: 'Akshay',
task: 'task2',
employeeId: '1205'
},
],
1210: [
{
employeeName: 'Abhay',
task: 'task1',
employeeId: '1210'
},
{
employeeName: 'Abhay',
task: 'task2',
employeeId: '1210'
},
],
};
const sortedObj = {};
Object.keys(data)
.sort((a, b) => {
const nameA = data[a][0].employeeName.toUpperCase();
const nameB = data[b][0].employeeName.toUpperCase();
if (nameA < nameB) return -1;
if (nameA > nameB) return 1;
return 0;
})
.forEach((key) => {
sortedObj[key] = [...data[key]];
});
return sortedObj;
}
console.log(sort());
But this giving output like the original data
{
'1200': [
{ employeeName: 'Harish', task: 'task1', employeeId: '1200' },
{ employeeName: 'Harish', task: 'task2', employeeId: '1200' },
{ employeeName: 'Harish', task: 'task3', employeeId: '1200' }
],
'1205': [
{ employeeName: 'Akshay', task: 'task1', employeeId: '1205' },
{ employeeName: 'Akshay', task: 'task2', employeeId: '1205' }
],
'1210': [
{ employeeName: 'Abhay', task: 'task1', employeeId: '1210' },
{ employeeName: 'Abhay', task: 'task2', employeeId: '1210' }
]
}
Here is the sandbox link sandbox link