Tengo un objeto que tiene datos (nulo) y otros objetos con un arreglo cuyos valores también son nulos, si todos los valores son nulos entonces falso, si al menos uno es otra cosa entonces verdadero. ¿Cómo analizo este objeto y veo si todos los datos son nulos y obtengo verdadero/falso?
Object { employerCompanyName: null, companyBenefitsProviderName: null, companyRepresentative: null, website: null, logonID: null, password: null, benefitsDetails: (1) […], coverageDetails: (1) […], beneficiaryDetails: (1) […], notes: null } beneficiarioDetalles: Array [ {…} ] 0: Objeto { beneficiario: nulo, asignación: nulo } longitud: 1 : Array [] beneficiosDetalles: Array [ {…} ] 0: Objeto { beneficiosPaqueteTipo : nulo, detalles de cobertura de beneficios: [], número de póliza: nulo } longitud: 1 : Array [] companyBenefitsProviderName: null companyRepresentative: null coverageDetails: Array [{…}] 0: Object { familyMemberCovered: null, moneda: nula, cantidad: nula } longitud: 1 : Matriz [] employerCompanyName: nula logonID: nula notas: nula contraseña: nula sitio web: nula
Creó los objetos de prueba según las especificaciones. Lógica definida para establecer indicadores y valores de registro cuando existe algo que no sea nulo dentro del objeto o dentro de una matriz en ese objeto.
Pase el objeto a Object.entries para la prueba. Simplemente envuelva esta lógica en una función que pase el parámetro a Object.entries y devuelva lo que sea necesario.
let thing1 = {a: null, b: [null, null, null]}; let thing2 = {a: null, b: [null, null, 'value']}; let thing3 = {a: 'something', b:[null, null, null]}; let flag = false; for( [key,val] of Object.entries(thing1) ){ if(val && !Array.isArray(val)){ console.log(val); flag = true; } else if(Array.isArray(val)){ for(let i = 0; i < val.length; i++){ if(val[i] !== null){ console.log( val[i] ); flag = true; } } } }Sigue siendo falso para la cosa 1, el indicador se establece en verdadero y registra el valor para la cosa 2 y la cosa 3.