假设我们的有序列表如下所示:
const list = [
{ name: 'item1', rating: 3 },
{ name: 'item2', rating: 5 },
{ name: 'item3', rating: 1 },
{ name: 'item4', rating: 4 },
{ name: 'item5', rating: 2 }
];
我们可以使用 sort()
方法对其进行排序,该方法接受一个比较函数作为参数,该函数将两个元素作为参数并返回一个数字,指示哪个元素应该排在前面。我们可以编写这样一个比较函数来按评分排序:
list.sort((a, b) => a.rating - b.rating);
这里我们使用箭头函数,它接受两个参数 a
和 b
,表示两个要比较的元素。函数返回 a.rating - b.rating
,这是一个数字,表示哪个元素的评分更高。如果结果为负数,表示 a
应该排在 b
前面;如果结果为正数,表示 b
应该排在 a
前面;如果结果为零,则两个元素的评分相同,它们的相对位置不会改变。
此时,我们的列表就已经按评分排序了。可以通过 console.log(list)
打印出来看一下结果。