【发布时间】:2021-11-25 04:47:40
【问题描述】:
我正在尝试对下面的列表进行排序,首先按关系(如果它是订阅者,那么它应该是第一个)然后按活动与非活动。活跃应该在不活跃之前然后每个活跃和不活跃应该按年龄降序排序。 所以我有这个数组:
[{status: 'Active', BirthDate: '12/31/1960', Relationship:"Friend"},
{status: 'Active', BirthDate: '12/31/1985', Relationship:"Wife"},
{status: 'Inactive', BirthDate: '12/31/1998', Relationship:"Son"},
{status: 'Inactive', BirthDate: '12/31/1996',Relationship:"Daughter"},
{status: 'Active', BirthDate: '12/31/1995', Relationship:"Daughter"},
{status: 'Active', BirthDate: '12/31/1979', Relationship:"Subscriber"},
{status: 'Inactive', BirthDate: '12/31/1999', Relationship:"Son"}
]
结果应该是:
[{status: 'Active', BirthDate: '12/31/1979', Relationship:"Subscriber"},
{status: 'Active', BirthDate: '12/31/1960', Relationship:"Friend"},
{status: 'Active', BirthDate: '12/31/1985', Relationship:"Wife"},
{status: 'Active', BirthDate: '12/31/1995', Relationship:"Daughter"},
{status: 'Inactive', BirthDate: '12/31/1992', Relationship:"Son"},
{status: 'Inactive', BirthDate: '12/31/1996',Relationship:"Daughter"},
{status: 'Inactive', BirthDate: '12/31/1999', Relationship:"Son"}
]
我在下面尝试过,但似乎不起作用:
testlist = testlist.sort((a, b) => (a.Relationship === "Subscriber" ) ? -1 :(a.status === "Active") ? -2 : (b.BirthDate - a.BirthDate) ? -3 : 1);
有没有办法通过在 JavaScript 中使用 .sort 方法来做到这一点?
【问题讨论】:
-
请添加您尝试过的内容以获得更好的响应
-
@TusharShahi 我添加了我尝试过的内容
-
德雷克,你只能在
Array.sort()内返回-1、1或0
标签: javascript arrays salesforce javascript-objects lwc