Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как взять из объекта только нужные поля

Короткий ответ

Деструктуризация забирает нужные поля, и вы кладёте их в новый объект:

const user = { id: 1, name: 'Anna', email: 'anna@example.com', password: 'secret' };
const { name, email } = user;
 
console.log(JSON.stringify({ name, email }));

Результат:

{"name":"Anna","email":"anna@example.com"}

Список ключей

Когда ключи заданы массивом, соберите объект через Object.fromEntries():

const pick = (object, keys) => Object.fromEntries(keys.filter((key) => key in object).map((key) => [key, object[key]]));
 
const user = { id: 1, name: 'Anna', email: 'anna@example.com', password: 'secret' };
 
console.log(JSON.stringify(pick(user, ['id', 'name', 'phone'])));

Результат:

{"id":1,"name":"Anna"}

По значениям

Отфильтруйте пары объекта, чтобы убрать, например, пустые значения:

const form = { name: 'Anna', phone: '', city: 'Rome', note: null };
const filled = Object.fromEntries(Object.entries(form).filter(([, value]) => value !== '' && value !== null));
 
console.log(JSON.stringify(filled));

Результат:

{"name":"Anna","city":"Rome"}

Частая ошибка

Без проверки key in object отсутствующие ключи станут свойствами со значением undefined:

const user = { name: 'Anna' };
const picked = Object.fromEntries(['name', 'phone'].map((key) => [key, user[key]]));
 
console.log(Object.keys(picked).join(', '));

Результат:

name, phone

Функции из этого ответа

  • Object.fromEntries — Создаёт объект из списка пар ключ — значение.
  • Object.entries — Возвращает массив пар «имя свойства и значение».
  • Destructuring assignment — Достаёт значения из массива или объекта в отдельные переменные.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.