我有一个对象数组,一个属性是它们的状态,我需要计算以下状态:如果所有状态都失败,则返回“失败”,如果所有状态都被取消,则返回“已取消”,依此类推,但如果数组有一个失败,或者一个取消返回“部分完成”,我做到了,但我循环了很多,我觉得存在一种更好更有效的方法来做同样的事情,这是我的代码:
function getComputedStatus(list) {
if (list.every(status => status.statusName == 'Failed'))
return 'Failed';
if (list.every(status => status.statusName == 'Canceled'))
return 'Canceled';
if (list.every(status => status.statusName == 'DidNotRun'))
return 'DidNotRun';
if (list.some(status => status.statusName == 'InProgress' ||
status.statusName == 'Pending'))
return 'InProgress';
if (list.some(status => status.statusName === 'Failed' ||
status.statusName === 'Canceled' ||
status.statusName === 'DidNotRun'))
return 'PartiallyCompleted';
return 'Completed';
}
陪伴而非守候
相关分类