На собеседовании была задача, объяснить как будет работать данная функция:
const filter = by => order => [a,b].join('');
После собеседования, начал разбираться в вопросе каррирования.
Правильно ли я все понял, должно работать именно так?
interface OrderItemT {
id: number,
item: string,
date: string
}
const testOrders: OrderItemT[] = [
{
id:2,
item: "Кровать",
date: "02.02.2022"
},
{
id: 3,
item: "Стол",
date: "03.03.2022"
},
{
id:1,
item: "Диван",
date: "01.01.2022"
}
]
type orderT = 'ASC' | 'DESC'
const filter = (by: keyof OrderItemT ) => (order?:order) => {
return (array:OrderItemT[]) => {
const filterArr = [...array]
switch (by) {
case 'id':
filterArr.sort(function(a, b) {
return a.id - b.id;
});
break
case 'item':
console.log('item')
break;
default:
return filterArr
}
if(order === 'DESC'){
return filterArr.reverse()
}
return filterArr
}
};
const fl = filter('id')(null)
console.log(fl(testOrders))