Me gustaría saber cómo devolver verdadero o falso en función de la propiedad de dos objetos de matriz usando javascript
Si el value de arrobj1 y arrobj2 y el mismo country devuelven verdadero
Lo intenté a continuación, ¿puedo saber una mejor manera de hacerlo usando javascript?
Tried for(var elem of arrobj1){ const result = arrobj2.filter(obj => obj.value === elem.value && obj.country === elem.country); if(result.length > 0){ return true; } } var arrobj1 =[ {id:1, name: "one", value:"sales", country:"MY"}, {id:2, name: "two", value:"finance", country:"PH"}, {id:3, name: "three", value:"digital", country:"SL"} ] var arrobj2 =[ {id:4, name: "four", value:"digital", country:"SL"} ] Expected Output trueReorganice su código para comenzar con las matrices y luego la función de clasificación
arrobj2 debe ser:
var arrobj2 =[ {id:4, name: "four", value:"digital", country:"SL"} ]en vez de:
var arrobj2 =[{ {id:4, name: "four", value:"digital", country:"SL"} }]también pruebe console.log('true') en su lugar si devuelve true . Notarás algo que te ayudará más adelante.
return , debe envolver su código en una función y llamarla cuando sea necesario.Prueba esto
var arrobj1 = [ {id:1, name: "one", value:"sales", country:"MY"}, {id:2, name: "two", value:"finance", country:"PH"}, {id:3, name: "three", value:"digital", country:"SL"} ] var arrobj2 = [ {id:4, name: "four", value:"digital", country:"SL"} ]; function exist(arrobj1, arrobj2){ for(var elem of arrobj1){ const result = arrobj2.filter(obj => obj.value === elem.value && obj.country === elem.country); if(result.length > 0){ return true; } } return false; } console.log(exist(arrobj1, arrobj2));Puede usar Array#some de la siguiente manera:
const arrobj1 =[ {id:1, name: "one", value:"sales", country:"MY"}, {id:2, name: "two", value:"finance", country:"PH"}, {id:3, name: "three", value:"digital", country:"SL"} ], arrobj2 =[ {id:4, name: "four", value:"digital", country:"SL"} ], found = arrobj2.some( ({value:v,country:c}) => arrobj1.map( ({value,country}) => `${value}|${country}` ).includes(`${v}|${c}`) ); console.log( found );