通过两个不同的属性对项目进行排序

彼得·弗拉纳根

我有一个对象数组。

const people = [
   {
     active: true,
     hasMoney: false
   },
   {
     active: false,
     hasMoney: false
   },
   {
     active: true,
     hasMoney: true
   }
]

我想按以下顺序对数据进行排序:active: true-> hasMoney: true-> active: false->hasMoney: false

重要提示:如果用户是active === truehasMoney === true,则应在active === true之后订购hasMoney === false

我尝试了以下方法,但是没有用。谁有想法?

people
  .sort((x, y) =>
     x.hasMoney
       ? Number(x) - Number(y)
       : Number(isPersonActive(y)) - Number(isPersonActive(x))
)
妮娜·斯科茨(Nina Scholz)

您可以采用布尔值的差值,并通过两个属性进行排序,并具有对相同值进行排序的特殊外观。

const people = [{ active: false, hasMoney: true }, { active: true, hasMoney: false }, { active: false, hasMoney: false }, { active: true, hasMoney: true }];

people.sort((a, b) =>
    b.active - a.active || 
    (a.hasMoney === b.active) - (a.active === b.hasMoney)
);

console.log(people);
.as-console-wrapper { max-height: 100% !important; top: 0; }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过两个不同的值对HashSet进行排序?

如何通过两个不同的键对列表进行排序?

按两个不同的属性对集合进行排序

通过SortableMixin使用不同的排序方向按两个属性排序

如何通过两个属性和排序规则对对象列表进行排序

在一个查询中按不同属性对两个模型进行排序

通过每个选择中的两个不同列对具有两个选择的联合进行排序

通过两个不同的条件对数组中的对象进行排序

通过实体框架中的两个不同字段对结果进行排序

如何通过两个不同的值对对象数组进行排序

通过匹配两个不同列中的值对行进行排序

Scala - 如何按不同顺序按两个属性对元组进行排序?

JS:按两个不同的属性对JSON数组进行排序,并保持数组中指定的顺序

PHP通过两个属性对对象数组进行排序

对两个不同的向量进行相同的排序

对两个不同类对象的列表进行排序

通过两个变量对多维数组进行排序

获取AngularJS订单通过对两个方向进行排序

如何通过两个嵌套关联对集合进行排序

Python通过两个键值对JSON列表进行排序

通过使用linq比较两个列表进行排序?

Python:根据两个属性对列表进行排序

按两个属性对jQuery列表进行排序

基于两个属性对类指针的向量进行排序?

按角度的两个属性对数组进行排序

按两个属性对对象数组进行排序

猫鼬最佳查询-对两个属性进行排序

如何比较两个属性然后进行排序

Java - 根据两个属性值对 JSONArray 进行排序