Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

150
Visualizações
Pluck an object's properties and values into a new object

I want a nice small one liner to use an array, for example ['postcode','town'], and then pluck just these properties from a larger object.

So this:

const fields = ['postcode','town'];
const obj = {
    name: 'test',
    postcode: 'SS2 5JJ',
    town: 'Somewhere',
    other: 'info'
}

Would become this:

const filtered = {
    postcode: 'SS2 5JJ',
    town: 'Somewhere',
}

I did find this however I have mis-understood it I believe:

const fields = ['postcode','town'];
Object.keys(fields).map(e => fields[e])

What is the best way to do this?

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

You could use Array.reduce

const fields = ['postcode', 'town'];
const obj = {
  name: 'test',
  postcode: 'SS2 5JJ',
  town: 'Somewhere',
  other: 'info'
};

const filteredObj = fields.reduce((acc, cur) => Object.assign(acc, { [cur]: obj[cur] }), {});

console.log(filteredObj);

about 4 years ago · Juan Pablo Isaza Relatório

0

You can map your array fields to [key, value] which will create an array of [key, value] pairs. Once you have this array, you can use Object.fromEntries() to build your object for each key-value pair:

const fields = ['postcode','town'];
const obj = { name: 'test', postcode: 'SS2 5JJ', town: 'Somewhere', other: 'info' };

const res = Object.fromEntries(fields.map(key => [key, obj[key]]));
console.log(res);

about 4 years ago · Juan Pablo Isaza Relatório

0

"Best" is of course a subjective concept. But I think that the reduce function is the cleanest way of doing it. That way there is no need to chain together different functions.

const filtered = fields.reduce((prev, key) => ({[key]: obj[key], ...prev}), {});
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda