Javascript 如何使用特定的字母表对字符串数组进行排序?

Javascript 如何使用特定的字母表对字符串数组进行排序?,javascript,Javascript,我有一个strng数组 e、 g: 我知道如果我使用StrArray.Sort(),它将按字母顺序排序。但我想使用以下字母表进行排序=“jngmclqskrzfvbwpxdt” 我已经搜索过了,但我只发现有人使用哈希表来解决它 可以在JS中执行吗? let order='jngmclqskrzfvbwpxdt' 让StrArray=[“hook”、“javascript”、“hour”、“nemo”、“case”]; StrArray.sort(函数(a,b){ 设firstAlphaOfPar

我有一个strng数组

e、 g:

我知道如果我使用StrArray.Sort(),它将按字母顺序排序。但我想使用以下字母表进行排序=“jngmclqskrzfvbwpxdt”

我已经搜索过了,但我只发现有人使用哈希表来解决它

可以在JS中执行吗?

let order='jngmclqskrzfvbwpxdt'
让StrArray=[“hook”、“javascript”、“hour”、“nemo”、“case”];
StrArray.sort(函数(a,b){
设firstAlphaOfParam1=a.charAt(0);
设firstAlphaOfParam2=b.charAt(0);
退货订单.indexOf(firstAlphaOfParam1)-订单.indexOf(firstAlphaOfParam2);
})

控制台日志(StrArray)您的排序词汇表不包含单词中的所有字母,因此不完全清楚如何处理诸如“hour”和“hook”之类的单词,因为排序列表中没有“o”。您可以忽略它们,并按排序顺序将列表中不存在的任何内容视为相等。您还应该针对类似的基础进行测试,如“hook”和“hooks”

例如:

let StrArray=[“hook”、“javascript”、“nemo”、“hours”、“case”、“hour”、“houn”];
const sort_order=“jngmclqskrzfvbwpxdt”
StrArray.sort((a,b)=>{
设i=0;
而(ilog(StrArray)
我可以留下一个小贡献,这个代码可以使用第一个字母排序

var arr1=[“hook”、“javascript”、“nemo”、“case”];
var myAbc='jngmclqskrzfvbwpxdt';
var final_数组=[];
对于(i=0;iconsole.log(最终_数组)排序函数,采用可选函数。所以您可以说:
list.sort(函数(a,b){returna。因此,如果您想自定义排序功能,您可以在其中定义参数。很好!但是如果我有更多的单词“hour”?在排序器中不要只返回true false,你只能向前移动元素,不能向后移动(-1)=>它不会被排序。@Kaido:我真的不明白你的意思,你介意进一步阐述吗?@LeonardoLima:如上所述,排序只比较第一个字母,因此,
hour
hook
将被并排排序。排序函数参数的三个预期返回值是
-1
(向前移动)
0
(不移动)和
1
(向后移动)。通过仅返回
true
false
值,您将算法限制为
0
1
,并且由于没有项目能够向前移动,因此无法正确进行排序。
StrArray = ["hook", "hour", "javascript", "nemo", "case"];