Tengo un objeto de campo que puede contener solo una de diferentes propiedades con una identificación como valor.
const Field = { // Field can contain property1Id: 'someId', // Or property2Id: 'someOtherId', // Or property3Id: '...' //... };Quiero devolver el nombre de la propiedad y su valor. Lo siguiente funciona bien, pero se siente un poco largo. De todos modos para reducirlo / ser más eficiente.
const propertyName = Field.property1Id ? 'Property 1' : someObject.property2Id ? 'Property 2' : someObject.property3Id ? 'Property 3' : 'Other'; const id = Field.object1Id ? Field.property1Id : Field.property2Id ? Field.property2Id : Field.property3Id ? Field.property3Id : null; console.log(propertyName, id)Gracias.
Si esto es lo que quiere decir, se devuelve cada nombre de propiedad con valor de propiedad :)
const Field = { // Field can contain property1Id: 'someId', // Or property2Id: 'someOtherId', // Or property3Id: '...' //... } let entries = Object.entries(Field); entries.forEach(entry => { console.log(entry) })Mejor enfoque
const Field = { // Field can contain property1Id: 'someId', // Or property2Id: 'someOtherId', // Or property3Id: '...' //... }; let i = 0; for (const property in Field) { i++ console.log('Property ' + i, Field[property]); } Output: "Property 1" "someId" "Property 2" "someOtherId" "Property 3" "..."