gpt4 book ai didi

Javascript自定义排序,在底部对某些项目进行分组并在其中排序

转载 作者:行者123 更新时间:2023-11-29 21:00:07 27 4
gpt4 key购买 nike

在 javascript 中,我有一个项目数组,如下所示:

[
'title',
'firstname',
'company',
'[m]usr_phone'
'[m]usr_city'
]

我想使用自定义数组排序函数对其进行排序,以便所有非 [m] 项都排序在顶部,所有 [m] 项都排序并推到底部(在所有非 [ m]项)

为了实现这一点,我尝试了这样的排序函数:

function(a, b) {
if (!a.indexOf('[m]') && b.indexOf('[m]') === 0
|| a.indexOf('[m]') && b.indexOf('[m]')) {
return -1;
}

if (a.indexOf('[m]') === 0 && !b.indexOf('[m]')) {
return 1;
}

return 0;
}

但无法让它正常工作。我希望输出为:

[
'company',
'firstname',
'title',
'[m]usr_city'
'[m]usr_phone'
]

感谢您的帮助!

最佳答案

您可以检查前缀并稍后按 String#localeCompare 排序.

var array = ['title', 'firstname', 'company', '[m]usr_phone', '[m]usr_city'];

array.sort(function (a, b) {
return (a.slice(0, 3) === '[m]') - (b.slice(0, 3) === '[m]') || a.localeCompare(b);
});

console.log(array);

关于Javascript自定义排序,在底部对某些项目进行分组并在其中排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46960012/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com