如何在JavaScript中按属性值对对象数组进行排序

了解如何通过JavaScript中的属性值对对象数组进行排序


假设您有一个像这样的对象数组:

const list = [
  { color: 'white', size: 'XXL' },
  { color: 'red', size: 'XL' },
  { color: 'black', size: 'M' }
]

您要呈现此列表,但首先要按其中一个属性的值对其进行排序。例如,您要按颜色名称(按字母顺序)进行排序:黑色,红色,白色。

您可以使用sort()的方法Array,它带有一个回调函数,该函数将数组中包含的2个对象作为参数(我们称之为ab):

list.sort((a, b) => (a.color > b.color) ? 1 : -1)

当我们返回1时,该函数将与sort()该对象b优先于对象排序a。归来-1相反。

回调函数还可以计算其他属性,以处理颜色相同的情况,并按次要属性进行排序:

list.sort((a, b) => (a.color > b.color) ? 1 : (a.color === b.color) ? ((a.size > b.size) ? 1 : -1) : -1 )

免费下载我的JavaScript初学者手册


更多js教程: