estos son mis datos
let a = [ { "activityCode": "23", "isValid": null }, { "activityCode": "28", "isValid": null }, { "activityCode": "32", "isValid": null } ] let b = [ { "activityCode": "23", "allocated": 3 }, { "activityCode": "32", "allocated": 2 } ]Quiero cambiar "isValid" a verdadero si el código de actividad (a) en la matriz tiene el mismo código de actividad (b) y "es válido" a falso si el código de actividad (a) en la matriz no tiene el mismo código de actividad (b), y la salida que necesito como esto:
let a = [ { "activityCode": "23", "isValid": true }, { "activityCode": "28", "isValid": false }, { "activityCode": "32", "isValid": true } ]Por favor, ayúdame. gracias chicos.
a.map(aa => { const match = b.find(bb => bb.activityCode === aa.activityCode); return { activityCode: aa.activityCode, isValid: match !== undefined }; })Prueba esto :
a.forEach(element => { element.isValid = b.some(e => e.activityCode === element.activityCode); }); console.log(a);Puede usar Array.map() y Array.some() para obtener el resultado deseado. Si algún elemento de a está presente en la matriz b, Array.some() devolverá verdadero.
let a = [ { "activityCode": "23", "isValid": null }, { "activityCode": "28", "isValid": null }, { "activityCode": "32", "isValid": null } ] let b = [ { "activityCode": "23", "allocated": 3 }, { "activityCode": "32", "allocated": 2 } ] const result = a.map(({ activityCode }) => ({ activityCode, isValid: b.some(el => el.activityCode === activityCode ) })); console.log('Result:', result) .as-console-wrapper { max-height: 100% !important; top: 0; }