Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

200
Vistas
Compare two objects and create new object

I have two objects as below:

var1 = {
    "ELEMENT1": [1110,1111],
    "ELEMENT2": ["909"],
    "ELEMENT3": ["910"]
}

var2 =  {
    "ELEMENT3": [
    {
        "ID":910,
        "NAME":"ELEMENT3",
        "DETAILS":"CURRENT"
    },
    {
        "ID":912,
        "NAME":"ELEMENT3",
        "DETAILS":"FUTURE"
    }
    ],
    "ELEMENT2":[
    {
        "ID":909,
        "NAME": "ELEMENT2",
        "DETAILS":"OUTAGE"
    },
    {
        "ID": 910,
        "NAME": "ELEMENT2",
        "DETAILS":"OUTAGE"
    }
    ],
    "ELEMENT1":[
    {
        "ID": 1110,
        "NAME": "WORK_PACKAGE",
        "DETAILS": "INLINE"
    },
    {
        "ID": 1111,
        "NAME": "WORK_PACKAGE",
        "DETAILS": "INLINE"
    },
    {
        "ID": 1112,
        "NAME": "WORK_PACKAGE",
        "DETAILS": "INLINE"
    },
    {
        "ID": 1113,
        "NAME": "WORK_PACKAGE",
        "DETAILS": "INLINE"
    }]
}

I am trying to creating 3rd object after comparing var1 and var2. 3rd object should contain only those ID which are present in var1.

3rd Object should look as below :

{
    "ELEMENT3": [
    {
        "ID":910,
        "NAME":"ELEMENT3",
        "DETAILS":"CURRENT"
    }
    ],
    "ELEMENT2":[
    {
        "ID":909,
        "NAME": "ELEMENT2",
        "DETAILS":"OUTAGE"
    }
    ],
    "ELEMENT1":[
    {
        "ID": 1110,
        "NAME": "WORK_PACKAGE",
        "DETAILS": "INLINE"
    },
    {
        "ID": 1111,
        "NAME": "WORK_PACKAGE",
        "DETAILS": "INLINE"
    }
    ]
}

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

This should do it:

var var1 = {
    "ELEMENT1": ["1110","1111"],
    "ELEMENT2": ["909"],
    "ELEMENT3": ["910"]
}

var var2 =  {
    "ELEMENT3": [
    {
        "ID":910,
        "NAME":"ELEMENT3",
        "DETAILS":"CURRENT"
    },
    {
        "ID":912,
        "NAME":"ELEMENT3",
        "DETAILS":"FUTURE"
    }
    ],
    "ELEMENT2":[
    {
        "ID":909,
        "NAME": "ELEMENT2",
        "DETAILS":"OUTAGE"
    },
    {
        "ID": 910,
        "NAME": "ELEMENT2",
        "DETAILS":"OUTAGE"
    }
    ],
    "ELEMENT1":[
    {
        "ID": 1110,
        "NAME": "WORK_PACKAGE",
        "DETAILS": "INLINE"
    },
    {
        "ID": 1111,
        "NAME": "WORK_PACKAGE",
        "DETAILS": "INLINE"
    },
    {
        "ID": 1112,
        "NAME": "WORK_PACKAGE",
        "DETAILS": "INLINE"
    },
    {
        "ID": 1113,
        "NAME": "WORK_PACKAGE",
        "DETAILS": "INLINE"
    }]
}

var obj = {};
Object.keys(var2).forEach((item) => {
  var2[item].forEach((subItem) => {
    if(var1[item].indexOf(`${subItem.ID}`) > -1) {
      obj[item] = [...(obj[item] ?? []), subItem]
    }
  })
});

console.log(obj);

about 4 years ago · Juan Pablo Isaza Denunciar

0

You could loop through var2 and filter the IDs which var1 includes and assign filtered props to a new object:

let var1 = {
  ELEMENT1: [1110, 1111],
  ELEMENT2: [909],
  ELEMENT3: [910],
}

let var2 = {
  ELEMENT3: [
    { ID: 910, NAME: 'ELEMENT3', DETAILS: 'CURRENT' },
    { ID: 912, NAME: 'ELEMENT3', DETAILS: 'FUTURE' },
  ],
  ELEMENT2: [
    { ID: 909, NAME: 'ELEMENT2', DETAILS: 'OUTAGE' },
    { ID: 910, NAME: 'ELEMENT2', DETAILS: 'OUTAGE' },
  ],
  ELEMENT1: [
    { ID: 1110, NAME: 'WORK_PACKAGE', DETAILS: 'INLINE' },
    { ID: 1111, NAME: 'WORK_PACKAGE', DETAILS: 'INLINE' },
    { ID: 1112, NAME: 'WORK_PACKAGE', DETAILS: 'INLINE' },
    { ID: 1113, NAME: 'WORK_PACKAGE', DETAILS: 'INLINE' },
  ],
}

const result = {}

for (let key in var2) {
  result[key] = var2[key].filter(o => var1[key]?.includes(o.ID))
}

console.log(JSON.stringify(result, null, 2))

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda