let arrayId={ "za": { "gasjxhj6782": { "value": "gasjxhj6782", "access": "Available at some point" }, "vghasj56728": { "value": "vghasj56728", "access": "Access denied" }, "ldghjd67821": { "value": "ldghjd67821", "access": "Admin role" } }, "cn": { "hjaks7812": { "value": "hjaks7812", "access": "Available at some point" }, "78912ashm": { "value": "78912ashm", "access": "Access denied" } }, "tw": { "78912ashm": { "value": "78912ashm", "access": "Access denied" } } }; let obj="hjaks7812"; function blockAccess(obj) { if (obj in arrayId) { attrs = { "type": "Access permission", "entry-level-id": "", "key": "", "access": "", }; } console.log(attrs); } Esta es mi función. Quiero verificar el valor de obj presente en arrayId y asignar el valor.
por ejemplo, obj es hjaks7812 , quiero verificarlo presente en qué nivel de arrayId
y hacer que mi salida de expectativa sea así si el valor es hjaks7812
{ "type": "Access permission", "entry-level-id": "hjaks7812", "key": "cn", "access": "Available at some point", } pero el valor de obj se cambia tal vez puede ser gasjxhj6782 o cualquier cosa, entonces debería tomar ese valor si el valor de obj es así gasjxhj6782 entonces el valor esperado será así
{ "type": "Access permission", "entry-level-id": "gasjxhj6782", "key": "za", "access": "Available at some point", } como quiero verificar obj en qué nivel y asignar ese valor aquí za cn tw se cambia cada vez que esto es definido por el usuario, así que quiero verificar en qué nivel está presente el valor que se asigna en obj y completar ese atributo
Puede probar este enfoque con entradas y bucle doble
let arrayId = { "za": { "gasjxhj6782": { "value": "gasjxhj6782", "access": "Available at some point" }, "vghasj56728": { "value": "vghasj56728", "access": "Access denied" }, "ldghjd67821": { "value": "ldghjd67821", "access": "Admin role" } }, "cn": { "hjaks7812": { "value": "hjaks7812", "access": "Available at some point" }, "78912ashm": { "value": "78912ashm", "access": "Access denied" } }, "tw": { "78912ashm": { "value": "78912ashm", "access": "Access denied" } } }; function blockAccess(key) { for (const [arrayKey, arrayValue] of Object.entries(arrayId)) { for (const [accessKey, accessValue] of Object.entries(arrayValue)) { if (accessKey === key) { return { "type": "Access permission", "entry-level-id": accessKey, "key": arrayKey, "access": accessValue.access, }; } } } return 'Not found' } console.log(blockAccess("hjaks7812")) console.log(blockAccess("gasjxhj6782")) console.log(blockAccess("testing")) //Not found if the key is not in your data