如何对使用点符号访问属性的JavaScript数组按车辆评分降序排序
JavaScript数组按车辆评分降序排序实现方案
Array.sort()默认会将元素转为字符串,按Unicode编码顺序排序,因此直接调用该方法无法实现按数值类型的car_rating属性排序,你只需要传入自定义比较函数即可实现需求:
基础实现(修改原数组)
pool.sort((a, b) => { // 后项评分减前项评分,实现降序排列 return b.car_rating - a.car_rating; });
无侵入实现(不修改原数组)
如果需要保留原始pool数组的顺序,可以先浅拷贝数组再执行排序:
const sortedPool = [...pool].sort((a, b) => b.car_rating - a.car_rating);
异常兼容实现
如果存在部分数据缺失car_rating属性的情况,可以设置缺省评分,将无评分数据默认排在末尾:
pool.sort((a, b) => { const ratingA = a.car_rating ?? 0; const ratingB = b.car_rating ?? 0; return ratingB - ratingA; });
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

