
tengo que mostrar la lista en orden de clasificación con respecto a la fecha de la firma, if signature date is not past dated and if there is no date for signature date entonces se considera como un registro activo (el orden de clasificación debe ser por estado, luego alfabético (entonces todos activos en la parte superior de la A a la Z, luego todos inactivos en la parte inferior de la A a la Z). Hice la clasificación según el nombre, pero no pude empujar las fechas de las firmas inactivas hasta el final. También adjunté DEMO.
const employee = [ { name: 'jpat', signatureDate: '', businessType: 12346, originalFileName: 'hello.xls', agentW9id: 11, fileName: 'hello.xls', agentCode: 0, class: '', status: '', }, { name: 'jcar', signatureDate: '09/10/2021', businessType: 12346, originalFileName: 'test.xls', agentW9id: 12, fileName: 'test.xls', agentCode: 0, class: '', status: '', }, { name: 'Test', signatureDate: '09/23/2020', businessType: 12346, originalFileName: 'test.xls', agentW9id: 13, fileName: 'test.xls', agentCode: 0, class: 'inactive', status: 'Inactive', }, { name: 'newTest', signatureDate: '10/9/2020', businessType: 12346, originalFileName: 'test.xls', agentW9id: 13, fileName: 'test.xls', agentCode: 0, class: 'inactive', status: 'Inactive', }, { name: 'abc', signatureDate: '10/29/2021', businessType: 12346, originalFileName: 'test.xls', agentW9id: 13, fileName: 'test.xls', agentCode: 0, class: '', status: '', }, { name: 'djhfj', signatureDate: '', businessType: 12346, originalFileName: 'test.xls', agentW9id: 13, fileName: 'test.xls', agentCode: 0, class: '', status: '', }, ]; console.log(employee.sort((a, b) => (a.name > b.name ? 1 : -1)));Bien, código actualizado,
Código de trabajo a continuación y Sandbox
const employee = [{ name: 'jpat', signatureDate: '', businessType: 12346, originalFileName: 'hello.xls', agentW9id: 11, fileName: 'hello.xls', agentCode: 0, class: '', status: '', }, { name: 'jcar', signatureDate: '09/10/2021', businessType: 12346, originalFileName: 'test.xls', agentW9id: 12, fileName: 'test.xls', agentCode: 0, class: '', status: '', }, { name: 'Test', signatureDate: '09/23/2020', businessType: 12346, originalFileName: 'test.xls', agentW9id: 13, fileName: 'test.xls', agentCode: 0, class: 'inactive', status: 'Inactive', }, { name: 'newTest', signatureDate: '10/9/2020', businessType: 12346, originalFileName: 'test.xls', agentW9id: 13, fileName: 'test.xls', agentCode: 0, class: 'inactive', status: 'Inactive', }, { name: 'abc', signatureDate: '10/29/2021', businessType: 12346, originalFileName: 'test.xls', agentW9id: 13, fileName: 'test.xls', agentCode: 0, class: 'inactive', status: 'Inactive', }, { name: 'djhfj', signatureDate: '', businessType: 12346, originalFileName: 'test.xls', agentW9id: 13, fileName: 'test.xls', agentCode: 0, class: '', status: '', } ]; var inactive = [], active = []; employee.forEach((item) => { if (item.status == 'Inactive') inactive.push(item); else active.push(item); }); inactive.sort(function(a, b) { if (a.name.toLowerCase() < b.name.toLowerCase()) { return -1; } if (a.name.toLowerCase() > b.name.toLowerCase()) { return 1; } return 0; }) active.sort(function(a, b) { if (a.name.toLowerCase() < b.name.toLowerCase()) { return -1; } if (a.name.toLowerCase() > b.name.toLowerCase()) { return 1; } return 0; }) var sortedArray = active.concat(inactive); console.log(sortedArray);