#javascript
Вопрос:
Я вызываю функцию с двумя аргументами,
Аргумент 1: Объект {a:1, b:2, c:3, d:4}
Аргумент 2: Условие ((prop, key) =gt; prop gt;= 3))
Здесь на основе условия нам нужно отфильтровать объект и предоставить результат в виде массива объектов.
Код, который я пробовал,
const pickBy = (a, b) =gt; { const data = Object.values(a).filter(b); console.log(data) } pickBy({a:1, b:2, c:3, d:4}, ((prop, key) =gt; prop gt;= 3))
Текущий Результат: [3,4]
ожидаемый результат: [{c:3}, {d:4}]
Комментарии:
1. вы фильтруете ключи объекта a. Ни один ключ не соответствует вашей функции фильтра
2. @NumanIjaz, Извините, что отредактировал сейчас..
Ответ №1:
Вы можете получить записи, отфильтровать, передав нужный формат для функции фильтрации, и построить объекты из отфильтрованных записей.
const pickBy = (object, filterFn) =gt; Object .entries(object) .filter(([k, v]) =gt; filterFn(v, k)) .map(([k, v]) =gt; ({ [k]: v })); console.log(pickBy({ a: 1, b: 2, c: 3, d: 4 }, (prop, key) =gt; prop gt;= 3));
Комментарии:
1. Это сработало.. Спасибо..