@lookingfor2

Правильно ли я понял смысл каррирования из вопроса на собеседовании?

На собеседовании была задача, объяснить как будет работать данная функция:
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))
  • Вопрос задан
  • 391 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы