按属性值对对象数组进行排序

时间:2021-05-17 11:35:16

标签: javascript arrays

const categories = [
  {
    id: 1,
    name: 'Example',
    slug: 'example'
    },
  {
    id: 2,
    name: 'Homepage',
    slug: 'homepage'
  }
]

我正在尝试对上述数组进行排序,以便对包含 slug: 'homepage' 的对象进行排序,我已经研究过使用 sort 函数,但只能按字母顺序排序。

1 个答案:

答案 0 :(得分:1)

如果你不介意顺序,除了主页必须先出现,那么这样的事情会起作用:

const categories = [{
    id: 1,
    name: 'Example',
    slug: 'example'
  }, {
    id: 2,
    name: 'Homepage',
    slug: 'homepage'
  }, {
    id: 3,
    name: 'Homepage2',
    slug: 'homepage'
  }, {
    id: 4,
    name: 'other',
    slug: 'other'
  }
];

const sorted = categories.sort(({ slug }) => slug === 'homepage' ? -1 : 0);

console.log(sorted);