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

278
Visualizações
How to change one property value in array with objects

I have const tab where I want to change property isActive from boolean to 'on' or 'off' depending on if it's true or false.

   const tab = [
   {id:'0',original:{lineId:'4', isActive:false, length: '3'}},
   {id:'1',original:{lineId:'5', isActive:true, length: '4'}},
   {id:'2',original:{lineId:'6', isActive:false, length: '7'}}
  ];

I tried to use .map() but I do something wrong. Can You please suggest where is the issue ?

const newTab = tab.map(x => x.original.isActive === false ? 'off' : x.original.isActive === true ? 'on' : x);

This is how newTab should look like after change:

  const newTab = 
[
    {id:'0',original:{lineId:'4', isActive:'off', length: '3'}},
      {id:'1',original:{lineId:'5', isActive:'on', length: '4'}},
      {id:'2',original:{lineId:'6', isActive:'off', length: '7'}}
     ];

With current code it returns changed isActive property only:

const newTab = ["off", "on", "off"]

thanks !

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

0

you can use a mapping and return a JSON by copying the values.

const tab = [
    { id: '0', original: { lineId: '4', isActive: false, length: '3' } },
    { id: '1', original: { lineId: '5', isActive: true, length: '4' } },
    { id: '2', original: { lineId: '6', isActive: false, length: '7' } }
];

const tab2 = tab.map(e => {
        return {
            id: e.id,
            original: {
                lineId: e.original.lineId,
                isActive: e.original.isActive ? 'on' : 'off',
                length: e.original.length
            }
        }
    });

Output : Image Output

about 4 years ago · Juan Pablo Isaza Relatório

0

You want to return the entire object, not just on or off inside your map. You can condense this using ...(spread operator) and only modify isActive while returning everything else as is:

const tab = [{
    id: '0',
    original: {
      lineId: '4',
      isActive: false,
      length: '3'
    }
  },
  {
    id: '1',
    original: {
      lineId: '5',
      isActive: true,
      length: '4'
    }
  },
  {
    id: '2',
    original: {
      lineId: '6',
      isActive: false,
      length: '7'
    }
  }
];

const newTab = tab.map(item => ({
  ...item,
  original: {
    ...item.original,
    isActive: item.original.isActive ? 'on' : 'off',
  }
}));

console.log(newTab)

about 4 years ago · Juan Pablo Isaza Relatório

0

You can use spread syntax, and you can update variables in map method.

tab.map((e) => (
    {
        ...e,
        original: {
            ...e.original,
            isActive: e.original.isActive ? 'on' : 'off'
        }
    }
))
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