javascript - 如何按“包含”对数组进行排序?
问题描述
我有一个带有 ID、名称通行证等的用户对象。还有一个 Vacations 对象数组(假期),每个对象都有“追随者”以及跟随(“喜欢”)假期的所有用户 ID 。
像这样:
vacations: [{name:'Germany', Price:200 ,followers:['fsdas7213nasd'], follows:1 }]
现在,我想对假期进行排序以首先显示包含用户 ID 的假期。我该怎么做?
解决方案
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(保持顺序)如果它同时存在/无。
推荐阅读
- elasticsearch - 跨索引更新共享数据 ElasticSearch
- arrays - 为什么这个 for 循环不返回任何非假成员?
- python - 如何使用python将txt数据插入mongodb
- artifactory - Artifactory - 隐藏“最后下载”信息
- android - Cordova 不接受 js 文件中的新更改
- python - “ValueError:无法将字符串转换为浮点数:”机器学习适合分类器
- java - 上传带有附加信息的多个文件(Spring RestController)
- spring - 将对象属性传递给 spring Mock mvc 调用
- nginx - 当我在 Kubernetes 中使用“App Root”注解时
- module - Julia 只从第一个自制模块中导入名称