Функциональный 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 ids = query( where({ name: "John" }), where({ surname: "Doe" }), sort('age'), )(data).map((u) => u.id); console.log(ids); // [2, 1, 3]

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

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