我有一个类似的数组:
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']
[请帮助我理解实现并提出以相同逻辑重新排序的方法。
您在第二个参数中添加了数组,在这里您可以提及回调函数或属性名称。
这是有效的解决方案
const my_array = [
"S T",
"O P",
"Lend",
"GT",
"C T",
"AC"
];
var AN_ORDER = {
"Lend": 1,
"C T": 2,
"S T": 3,
"AC": 4,
"O P": 5
};
console.log(_.sortBy(my_array, [a => {
return (AN_ORDER[a] || Number.MAX_SAFE_INTEGER);
}]));
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.15/lodash.min.js"></script>