es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo se comparan cada objeto-entrada de un elemento de matriz con las entradas de otro objeto, manteniendo/recordando cada resultado de la comparación?

Tengo una matriz de 2 objetos [ { bg: ‘a’, o: ‘c’ }, {‘hg’: ‘a2’, ‘oo’: ‘c3’ } ] proveniente de un archivo JSON. Y quiero comparar cada objeto en la matriz con otro objeto que se ve así { fm: ‘a’, fh: ‘b’, o: ‘a’, fe: ‘b’, ft: ‘a’, fb: ‘c’, bg: ‘f’ } para determinar si este objeto tiene ambos conjuntos de pares clave/valor en alguno de los objetos en la matriz JSON. ¿Cómo puedo comparar estos objetos?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para comparar los objetos, puedes iterar sobre el array de objetos y usar el método every para verificar si todas las parejas clave/valor en el segundo objeto existen en cada objeto del array. Aquí tienes un ejemplo de implementación en JavaScript:

    const jsonArray = [ { bg: 'a', o: 'c' }, {'hg': 'a2', 'oo': 'c3' } ];
    const secondObject = { fm: 'a', fh: 'b', o: 'a', fe: 'b', ft: 'a', fb: 'c', bg: 'f' };
    
    const isMatch = jsonArray.some((obj) => {
      return Object.keys(secondObject).every((key) => {
        return obj.hasOwnProperty(key) && obj[key] === secondObject[key];
      });
    });
    
    console.log(isMatch); // devuelve false
    

    En esta implementación, utilizamos el método some para iterar sobre el array de objetos y devolver true si algún objeto del array coincide con el segundo objeto. Luego, para cada objeto del array, utilizamos el método every para comprobar si todas las parejas clave/valor del segundo objeto existen en el objeto y tienen el mismo valor. Si todas las parejas clave/valor coinciden, devolvemos true desde el método every y el método some devolverá true, lo que indica que existe una coincidencia. Si ningún objeto del array coincide, el método some devolverá false. En este ejemplo, la variable isMatch se establecerá en false.

Comments are closed.