如何按XP值降序排序包含用户信息的JavaScript数组?
按XP值从高到低排序对象数组的方法
你完全可以用sort()方法处理对象数组,只要在回调里自定义比较逻辑就行,它可不是只能处理字符串和数字。
针对你的用户数组,直接用下面的代码就能实现按XP从高到低排序:
const array = [{userid: 1, xp: 36}, {userid: 2, xp: 61}, { userid: 3, xp: 13}]; // 按xp降序排序 array.sort((a, b) => b.xp - a.xp);
逻辑说明:
sort()的回调函数会拿数组里相邻的两个对象a和b做比较- 返回
b.xp - a.xp时,若结果为正,b会排在a前面;结果为负则相反,最终就实现了从高到低的排序 - 如果需要升序,改成
a.xp - b.xp即可
注意点:
sort()是原地修改数组的方法,如果不想改动原数组,先复制一份再排序:
const sortedArray = [...array].sort((a, b) => b.xp - a.xp);
内容的提问来源于stack exchange,提问作者kagent263
相关产品推荐
相关产品推荐

