【发布时间】:2021-08-30 16:25:58
【问题描述】:
我正在尝试对这个数组进行排序
const originalArray = ['Apple', 'Cat', 'Fan', 'Zebra', 'Goat', 'Van'];
使用这个数组
const sortOrder = ['Zebra', 'Van', "Cat"];
我试过用这个方法;
const sortedArray = originalArray.sort((a, b) => {
return sortOrder.indexOf(b) - sortOrder.indexOf(a);
});
console.log(sortedArray) // Output:["Cat","Van","Zebra","Apple","Fan","Goat"]
虽然这不是预期的结果
预期的输出应该是这样的
["Zebra","Van","Cat","Apple","Fan","Goat"]
使用任何库以及 lodash 对任何解决方案开放。 提前致谢
【问题讨论】:
-
反转排序顺序反转您比较项目的方式:
sortOrder.indexOf(b) - sortOrder.indexOf(a)->sortOrder.indexOf(a) - sortOrder.indexOf(b) -
这是在数组的末尾添加排序值,但我希望它在数组的开头。
-
我看不出这是一个打字稿问题?
-
如果我使用像 lodash 这样的库,打字稿会抛出错误
标签: javascript arrays typescript sorting lodash