Quiero la optimización del código para una declaración if porque, de lo contrario, tengo que agregar más pares clave-valor en esta condición con && . Tengo una matriz de objetos y la condición como en el siguiente ejemplo de código.
let arr = [{ a: 12, b: 14, c: undefined, d: undefined, e: 56, f: "file 1", g: "file 2", h: undefined, }]; for (const item of arr) { if ( item.a !== undefined && item.b !== undefined && item.c !== undefined && item.d !== undefined && item.e !== undefined && item.f !== undefined && item.g !== undefined ) { console.log("code works"); } else { console.log("fails"); } }Estoy tratando de optimizar el código anterior y agradezco cualquier sugerencia.
Puede usar Object.values() y some() para escribir un código más corto. Esta no es una gran optimización.
let arr = [{ a:12, b:14, c:undefined, d:undefined, e:56, f:"file 1", g:"file 2", h:undefined }] for(let key of arr){ if(Object.values(key).some((x) => x===undefined)){ console.log("fails") }else{ console.log("code works") } }Cree una función que acepte un objeto como argumento, obtenga sus values y luego use some para verificar si alguno de los valores no está undefined . some regresan después de encontrar la primera coincidencia con la condición.
const arr=[{a:12,b:14,c:undefined,d:undefined,e:56,f:'file 1',g:'file 2',h:undefined},{a:12,b:14,c:3,d:'bob from accounting',e:56,f:'file 1',g:'file 2',h:23},{a:12,b:14,c:3,d:'bob from accounting',e:56,f:'file 1',g:'file 2',h:undefined}]; function test(obj) { const values = Object.values(obj); return values.some(p => p === undefined); } const out = arr.map((obj, i) => { return `Code ${test(arr[i]) ? 'fails' : 'works'}`; }); console.log(out);Si entiendo el requisito correctamente, tiene propiedades dinámicas en un objeto y desea verificar si todas las propiedades en un objeto tienen valores. En caso afirmativo,
Prueba esto :
let arr = [{ a:12, b:14, c:undefined, d:undefined, e:56, f:"file 1", g:"file 2", h:undefined }]; arr.forEach(obj => { let str = ''; Object.keys(obj).forEach(key => { str = obj[key] ? 'code works' : 'fails' }) console.log(str); });