javascript - 基于键递归排序数组
问题描述
我有两个数组。一个数组是需要排序的项目数组。另一个数组是要排序的键(该对象的属性)。我想要一个按给定的每个键对数组进行排序的函数。
我试图遍历键数组并将每个键从数组中弹出然后排序,但是将该键添加到我用来对数组进行排序的三元组一直给我带来问题。
export function sortOrdersByKeys<T>(ordersArr: T[], sortByKeys: string[]): T[]
{
if (sortByKeys.length === 0) {
return ordersArr;
} else {
const lastItem = sortByKeys.pop();
return sortWithKey(ordersArr, lastItem);
}
}
function sortWithKey(arr, key) {
key = key[0];
for (let i = 0; i < key.length(); i++) {
}
return arr.sort((a, b) => (a.key > b.key) ? 1 : -1);
}
解决方案
这是一个基于键数组进行排序的递归函数。如果您需要解释,请告诉我。
function sortWithKey(arr, keys) {
const KEY = keys.pop();
arr = arr.sort((a, b) => (a[KEY]> b[KEY]) ? 1 : -1);
if(keys.legth <=0){
return arr;
}
return sortWithKey(arr, keys) ;
}
推荐阅读
- java - AssertJ:递归否定 isEqualToComparingFieldByField
- mysql - 根据最早日期更新所有记录
- c# - 以编程方式创建没有源或目标的数据流任务
- javascript - WMS 图层未在所有缩放级别上正确渲染
- ruby-on-rails - root_url 返回空字符串
- laravel - Laravel 关系有很多不起作用
- amazon-web-services - 在ec2(中国的ec2)部署美国AWS beanstalk环境后,在aws china beanstalk环境下无法获取平台信息
- ios - LoginViewController 编写雪松规范
- python - 暂停python脚本等待按键
- python - Python Notebook 从本地调用 Endpoint Sagemaker