目录
1.useSort
type Item = {};
export default function useSort(array: Item[], arraySort: string[], key: { label: string }) {
const indexMap = new Map<string, number>();
arraySort.forEach((item, index) => {
indexMap.set(item, index);
});
let keyIndex = key.label;
array.sort((a: any, b: any) => {
const aIndex = indexMap.get(a[keyIndex]) ?? Infinity;
const bIndex = indexMap.get(b[keyIndex]) ?? Infinity;
return aIndex - bIndex;
});
return [array];
}
使用方式
const data: any = [
{ name: '狗牙', age: 3, sex: '女', hobby: '踢足球' },
{ name: 'Silly', age: 2, sex: '女', hobby: '打篮球' },
{ name: '狗老大', age: 2, sex: '女', hobby: '打篮球' },
{ name: 'Tom', age: 2, sex: '女', hobby: '打篮球' },
{ name: 'Lily', age: 2, sex: '女', hobby: '打篮球' },
]
const arraySort: any = ['狗老大', '狗牙', 'Lily', 'Tom', 'Silly']
const [array] = useSort(data, arraySort, { label: 'name' })