📜  按字段排序数组 - Javascript (1)

📅  最后修改于: 2023-12-03 15:39:48.597000             🧑  作者: Mango

按字段排序数组 - Javascript

在Javascript中,我们可以使用数组的sort()方法来排序数组。sort()方法可以接收一个函数作为参数,该函数定义了排序的规则,决定了数组按照何种顺序进行排序。这里我们介绍一种按照对象的某一个字段进行排序的方法。

实现

我们可以写一个sortByField函数,该函数接收2个参数:数组arr和一个字符串field,表示按照哪个字段排序。函数内部使用数组的sort()方法和比较函数,根据字段对数组进行排序。

function sortByField(arr, field) {
  return arr.sort((a, b) => (a[field] > b[field]) ? 1 : -1);
}
用法

假设我们有一个数组,数组中每个元素都是一个对象,包含了name和age两个字段。现在我们想根据age字段对数组进行排序,可以使用如下代码:

const arr = [
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 30 },
  { name: 'Charlie', age: 20 }
];

const sortedArr = sortByField(arr, 'age');
console.log(sortedArr);
// 输出:
// [{ name: 'Charlie', age: 20 }, { name: 'Alice', age: 25 }, { name: 'Bob', age: 30 }]

如上代码会将数组按照age字段从小到大排序。

总结

sortByField函数可以方便我们对数组按照指定字段进行排序。如果需要按照不同规则排序,我们只需要改变比较函数即可。