Эффективные методы копирования ненулевых и неопределенных свойств в Lodash

При работе с объектами JavaScript вы часто сталкиваетесь с ситуациями, когда вам нужно скопировать только ненулевые и неопределенные свойства. Эта задача может быть сложной, но не бойтесь! В этой статье мы рассмотрим несколько методов использования Lodash, популярной библиотеки утилит, для эффективного достижения этой цели. Итак, давайте углубимся и откроем для себя несколько полезных приемов!

Метод 1: использование .pickBy() и.identity()
Один простой подход — объединить возможности _.pickBy()и _.identity()функции из Lodash. Вот как это можно сделать:

const sourceObject = {
  name: 'John',
  age: 30,
  address: null,
  occupation: 'Developer',
  hobbies: undefined
};
const result = _.pickBy(sourceObject, _.identity);
console.log(result);

В этом примере _.pickBy()отфильтровывает свойства с ложными значениями, а _.identityдействует как функция-предикат, сохраняющая только ненулевые и неопределенные свойства.

Метод 2: использование .omitBy() и.isNil()
Еще один мощный метод — использовать _.omitBy()и _.isNil()для исключить нулевые и неопределенные свойства. Вот пример:

const sourceObject = {
  name: 'John',
  age: 30,
  address: null,
  occupation: 'Developer',
  hobbies: undefined
};
const result = _.omitBy(sourceObject, _.isNil);
console.log(result);

Здесь _.omitBy()удаляет свойства, удовлетворяющие функции предиката _.isNil(), которая проверяет наличие нулевых и неопределенных значений.

Метод 3: использование деструктуризации объекта и нулевого оператора объединения.
Если вы предпочитаете собственный подход JavaScript, не полагаясь на Lodash, вы можете добиться того же результата, используя деструктуризацию объекта и нулевой оператор объединения (??):

const sourceObject = {
  name: 'John',
  age: 30,
  address: null,
  occupation: 'Developer',
  hobbies: undefined
};
const { address = null, hobbies = null, ...result } = sourceObject;
console.log(result);

В этом методе нулевой оператор объединения присваивает значение null в качестве значения по умолчанию для свойств с нулевыми или неопределенными значениями, эффективно исключая их из объекта result.

Копирование ненулевых и неопределенных свойств из объекта — распространенная задача при разработке JavaScript. Используя возможности Lodash или собственные методы JavaScript, такие как деструктуризация объектов, вы можете добиться этого эффективно. В этой статье мы рассмотрели три метода: использование _.pickBy()и _.identity(), _.omitBy()и _.isNil(), а также деструктуризацию объекта с помощью нулевой оператор объединения. Выберите подход, который соответствует требованиям вашего проекта и стилю кодирования, и начните с легкостью копировать свойства!