Введение
В этом практическом занятии мы изучим, как использовать функцию pickBy() для создания нового объекта, состоящего только из пар ключ-значение, для которых заданная функция возвращает истинное значение. Эта функция может быть полезна в ситуациях, когда необходимо отфильтровать определенные свойства из объекта по определенным критериям. Мы узнаем, как использовать Object.keys(), Array.prototype.filter() и Array.prototype.reduce(), чтобы выполнить эту задачу.
Функция для выбора ключей объекта, соответствующих заданному условию
Для выбора ключей объекта, соответствующих заданному условию, используйте функцию pickBy(). Эта функция создает новый объект, состоящий из свойств, для которых заданная функция возвращает истинное значение.
- Используйте
Object.keys()иArray.prototype.filter(), чтобы удалить ключи, для которыхfnвозвращает ложное значение. - Используйте
Array.prototype.reduce(), чтобы преобразовать отфильтрованные ключи обратно в объект с соответствующими парами ключ-значение. - Функция обратного вызова вызывается с двумя аргументами: (значение, ключ).
Вот код для функции pickBy():
const pickBy = (obj, fn) =>
Object.keys(obj)
.filter((k) => fn(obj[k], k))
.reduce((acc, key) => ((acc[key] = obj[key]), acc), {});
Вы можете использовать эту функцию, чтобы выбрать ключи, соответствующие условию. Например:
pickBy({ a: 1, b: "2", c: 3 }, (x) => typeof x === "number");
// { 'a': 1, 'c': 3 }
Резюме
Поздравляем! Вы завершили практическое занятие "Выбор соответствующих ключей объекта". Вы можете выполнить больше практических занятий в LabEx, чтобы улучшить свои навыки.