如何根据指定多个key的数值总和对对象数组进行降序排序
实现代码
// 定义参与求和的统计字段列表 const statFields = ['CreateSpeedingEvent', 'CreateIdlingEvent', 'CreateHarshAccelerationEvent', 'CreateHarshDecelerationEvent'] // 按总和降序排序:总和越高排序越靠前 tempListData.sort((prev, curr) => { const sumPrev = statFields.reduce((total, field) => total + (prev[field] ?? 0), 0) const sumCurr = statFields.reduce((total, field) => total + (curr[field] ?? 0), 0) return sumCurr - sumPrev })
说明
- 代码里用
?? 0做兜底兼容,就算对象缺少对应统计字段也不会出现求和结果为NaN的问题,如果需要兼容低版本JS运行环境,可以替换为|| 0 - 你提供的示例数组排序后顺序为:John Doe > Henry > David Smith,和三个对象的求和结果7134 > 5988 > 5940对应,完全符合排序要求
内容的提问来源于stack exchange,提问作者Deep Kakkar
相关产品推荐
相关产品推荐

