这是一个非常接近我要在我的项目中实现的代码片段:https ://repl.it/@Twinbird24/TimSort-example
var timsort = require('timsort');
const arr = [
{
name: 'Amy',
age: 23
},
{
name: 'Bob',
age: 34
},
{
name: 'Cary',
age: 18
}
];
function sort(objectsArr, sortBy, sortOrder = 'ascending') {
function stringCompare(a, b) {
return a.sortBy - b.sortBy;
}
return timsort.sort(objectsArr, stringCompare);
}
const sortedArr = sort(arr, 'name');
console.log(sortedArr);
这是我正在使用的包:https ://www.npmjs.com/package/timsort
我试图通过每个对象的名称属性对我的对象数组进行排序,该属性包含一个字符串——尽管我的函数也可以传递另一个项目来排序(即“年龄”)。
TimSort 的文档不是很清楚,通过查看源代码我仍然不太能够弄清楚如何配置我的代码。
您会在我的代码中注意到,我还想选择按“升序”或“降序”进行排序,但我不确定如何将其添加到我正在使用的 TimSort 方法中。