Функциональный JavaScriptКарированиеmedium

Select

Реализуйте функции query, where и sort, которые позволяют преобразовывать данные.

const data = [ { id: 1, name: "John", surname: "Doe", age: 34 }, { id: 2, name: "John", surname: "Doe", age: 33 }, { id: 3, name: "John", surname: "Doe", age: 35 }, { id: 4, name: "Mike", surname: "Doe", age: 35 }, ]; const search = query( where("name", "John"), where("surname", "Doe"), sort("age"), ); console.log(search(data)); // [ // { id: 2, name: "John", surname: "Doe", age: 33 }, // { id: 1, name: "John", surname: "Doe", age: 34 }, // { id: 3, name: "John", surname: "Doe", age: 35 }, // ]

Гарантируется, что:

  • в массиве все объекты гомогенные, то есть с одинаковыми полями;
  • в query пeредаются только результаты вызовов функций where и sort;
  • в sort передается существующий ключ объектов из массива, значение по которому является числом или строкой;
  • в where пeредаются ключ и значение, по которым мы фильтруем объекты.