выбор указанных свойств из объекта JS

Нужно создать функцию, которая будет выбирать указанные свойства из объекта пример работы ф-и:

{ name: 12, age: 34, city: 'NY' }, ['name', 'city'] => {name: 12, city: 'NY' }

Ответы (1 шт):

Автор решения: DiD

Способ 1.

const fx = (obj, fields) => 
         fields.reduce( (res, field) =>
           (res[field] = obj[field], res),
           {}
         ),
      res = fx( {name: 12, age: 34, city: 'NY'}, 
                ['name', 'city']);
console.log(res); // => {name: 12, city: 'NY'}

Способ 2.

const fx = (obj, fields) => 
              Object.keys(obj)
               .filter(key => !fields.includes(key))
               .reduce((res, field) =>
                  (delete res[field], res),
                  {...obj}
               ),
      res = fx( {name: 12, age: 34, city: 'NY'}, 
                ['name', 'city']);
console.log(res); // => {name: 12, city: 'NY'}

Способ 3.

const fx = (obj, fields) => 
             Object.fromEntries( 
               Object.entries(obj)
               .filter(([key]) => fields.includes(key))
             ),
      res = fx( {name: 12, age: 34, city: 'NY'}, 
                ['name', 'city']);
console.log(res); // => {name: 12, city: 'NY'}

→ Ссылка