Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

167
Views
Comparar dos objetos si tienen al menos un valor en común

Dado que tengo dos objetos, ¿cuál es la forma más sencilla de comparar si tienen al menos una propiedad que coincida ( alguna o alguna )? No busco una coincidencia completa de un objeto A completo dentro del objeto B, sino una coincidencia del objeto A parcial dentro del objeto B.

 { name: "John", age: 23, city: "London" } // and { name: "Craig", age: 47, city: "London" } // returns true
 { name: "Adrian", age: 32, city: "Sofia" } // and { name: "Tom", age: 44, city: "Oslo" } // returns false

He probado varias funciones de coincidencia parcial con lodash (isMatch), pero parecen realizar coincidencias de todos con algunos o de todos con todos, mientras que yo busco algunos con algunos.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Si simplemente está comprobando si tienen algo en común:

 const john = { name: "John", age: 23, city: "London" } const craig = { name: "Craig", age: 47, city: "London" } const adrian = { name: "Adrian", age: 32, city: "Sofia" } const tom = { name: "Tom", age: 44, city: "Oslo" } function hasAnythingInCommon(obj1, obj2) { for (const key in obj1) { if(obj1[key] === obj2[key]) return true } return false } console.log(hasAnythingInCommon(john, craig)) console.log(hasAnythingInCommon(adrian, tom))

Breve explicación:

  1. for (const key in obj1) : Recorre todas las claves en el primer objeto.
  2. if(obj1[key] === obj2[key]) return true : si los dos objetos coinciden en el valor que tienen en una de estas claves, devuelve true inmediatamente.
  3. return false : si pasa por todo el ciclo sin devolver true , entonces no tienen nada en común y devolvemos false .
about 4 years ago · Juan Pablo Isaza Report

0

La forma más fácil es simplemente enumerar todos los atributos como comparaciones:

 const compare = (a, b) => a.name === b.name || a.age === b.age || a.city === b.city;

Una versión más genérica sería:

 const compare = (a, b) => Object.entries(a).some(([key, value]) => value === b[key]);
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!