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

288
Visualizações
How to convert array element into object with conditionally true and one string value in javaScript

What is a more compact way to convert color=["red", "green", "blue", "Other"] into colorObjFinal = { blue: true, green: true, Other: "Other", red: true }?

This is my long function, I would like to shorten it:

let color = ["red", "green", "blue", "Other"];
let colorObj;
let colorObjFinal = {};
console.log("color:", color);

colorObj = color.reduce((a, v) => ({
...a,
[v]: v
}), {});
console.log("colorObj:", colorObj)

for (var key in colorObj) {
    if (colorObj.hasOwnProperty(key)) {
        if(key == 'Other'){
        colorObjFinal[key] = colorObj[key];
      } else {
        colorObjFinal[key] = true;
      }
    }
}

console.log("colorObjFinal:", colorObjFinal)

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

0

You could just do it all in 1 go:

let color = ["red", "green", "blue", "Other"];

let result = color.reduce ((a,v) => ({
  ...a,
  [v] : v == "Other" ? v : true
}),{});

console.log(result);

about 4 years ago · Juan Pablo Isaza Relatório

0

You can change your first Array.reduce to get the result.

let color = ["red", "green", "blue", "Other"];

const result = color.reduce((acc, item) => {
   acc[item] = (item != "Other") ? true : item;
   return acc;
}, {});

console.log(result);

about 4 years ago · Juan Pablo Isaza Relatório

0

that ? (is arguably the most compact writing here)

let color = ["red", "green", "blue", "Other"];

const res = color.reduce((a,c)=>(a[c]=c=='Other'?c:true,a),{});

console.log(res);

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