【发布时间】:2020-05-15 04:50:46
【问题描述】:
我有一个类似的数组:
const my_array = [
"S T"
"O P"
"Lend"
"GT"
"CT"
"AC"
];
和一个对象,这个数组被重新排序:
const AN_ORDER = {
'Lend': 1,
'C T': 2,
'S T': 3,
'AC': 4,
'O P': 5
};
已经有一个解决方案 //来自 Lodash 的键和 sortBy
const new_array = keys(my_array);
return sortBy(new_array, ar => AN_ORDER[ar] || Number.MAX_SAFE_INTEGER);
这会产生我的新数组:
["Lend", "AC", "O P", "S T", "GT", "C T"]
我尝试查看此用法的文档,但我不明白 sortBy 中使用第二个参数的想法。
现在我需要按以下顺序重新排序 my_array:
['Lend', 'C T', 'S T', 'GT', 'AC', 'O P']
请帮助我理解实现并提出一种我可以按照相同逻辑重新排序的方法。
【问题讨论】:
-
顶部有“CT”,底部有“CT”。你也有“keys()”,它不会给你显示的输出。这是您使用的实际代码吗?输出看起来像预期的那样,并且您要求的输出不一致
-
AN_ORDER 是数组还是对象?
-
看起来你有一个问题需要解决,但你误解了他们的要求。您只应该将他们要求您排序的那些排序到数组中,其他所有内容都应该保持在他们之前的位置。 lodash 无法为您做到这一点。您还应该在比较中忽略空格,并使用 AN 对象中的值。
标签: javascript sorting ecmascript-6 lodash