Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Update array of nested object value

I want to update the array of nested object values below I have given my object.
the first object of name things objects of permission object View value I want to update as false.

const obj=  [
    {
        "name": "Things",
        "is_default": true,
        "item_id": "60aa485d-551e-4d96-8355-68c3787f17d7",
        "permissions": {
            "View": true,
            "Create": false,
            "Delete": false,
            "Update": false
        },
        "description": "Things component permissions"
    },
    {
        "name": "Devices",
        "is_default": true,
        "item_id": "eb3efccd-8bab-4065-b350-693bcf2024a6",
        "permissions": {
            "View": true,
            "Create": false,
            "Delete": false,
            "Update": false
        },
        "description": "Devices component permissions"
    }
]

I want to update the first object of permission object View is false

expected output is:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

const obj=  [
    {
        "name": "Things",
        "is_default": true,
        "item_id": "60aa485d-551e-4d96-8355-68c3787f17d7",
        "permissions": {
            "View": false,
            "Create": false,
            "Delete": false,
            "Update": false
        },
        "description": "Things component permissions"
    },
    {
        "name": "Devices",
        "is_default": true,
        "item_id": "eb3efccd-8bab-4065-b350-693bcf2024a6",
        "permissions": {
            "View": true,
            "Create": false,
            "Delete": false,
            "Update": false
        },
        "description": "Devices component permissions"
    }
]

Thanks in advance please help anyone…

>Solution :

I’d suggest creating a function, say setPermission to get the relevant entry, then set the permissions appropriately:

const obj=  [ { "name": "Things", "is_default": true, "item_id": "60aa485d-551e-4d96-8355-68c3787f17d7", "permissions": { "View": true, "Create": false, "Delete": false, "Update": false }, "description": "Things component permissions" }, { "name": "Devices", "is_default": true, "item_id": "eb3efccd-8bab-4065-b350-693bcf2024a6", "permissions": { "View": true, "Create": false, "Delete": false, "Update": false }, "description": "Devices component permissions" } ]

function setPermission(arr, index, permissionName, value) {
    let entry = arr[index];
    if (entry) {
       entry.permissions[permissionName] = value;
    }
}

setPermission(obj, 0, 'View', false);

console.log(obj)
 
.as-console-wrapper { max-height: 100% !important; top: 0; }

You could also search for items by id, for example:

const obj=  [ { "name": "Things", "is_default": true, "item_id": "60aa485d-551e-4d96-8355-68c3787f17d7", "permissions": { "View": true, "Create": false, "Delete": false, "Update": false }, "description": "Things component permissions" }, { "name": "Devices", "is_default": true, "item_id": "eb3efccd-8bab-4065-b350-693bcf2024a6", "permissions": { "View": true, "Create": false, "Delete": false, "Update": false }, "description": "Devices component permissions" } ]

function setPermissionById(arr, id, permissionName, value) {
    let entry = arr.find(el => el.item_id === id);
    if (entry) {
       entry.permissions[permissionName] = value;
    }
}

setPermissionById(obj, '60aa485d-551e-4d96-8355-68c3787f17d7', 'View', false);

console.log(obj)
 
.as-console-wrapper { max-height: 100% !important; top: 0; }
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading