首页 > 解决方案 > 如何按“包含”对数组进行排序?

问题描述

我有一个带有 ID、名称通行证等的用户对象。还有一个 Vacations 对象数组(假期),每个对象都有“追随者”以及跟随(“喜欢”)假期的所有用户 ID 。

像这样:

vacations: [{name:'Germany', Price:200 ,followers:['fsdas7213nasd'], follows:1 }]

现在,我想对假期进行排序以首先显示包含用户 ID 的假期。我该怎么做?

标签: javascriptreactjs

解决方案


vacations.sort((a, b) => b.followers.includes(userID) - a.followers.includes(userID));

这两个includes调用都会产生一个布尔值,由于减法,它将被强制转换为 false -> 0,true -> 1。因此整个表达式导致

  • -1(第一个)如果 userID 仅包含在 a 的关注者中
  • 1 (b first) 如果它只在 b 中
  • 0(保持顺序)如果它同时存在/无。

推荐阅读