#javascript #arrays
Вопрос:
Я хочу обновить массив вложенных значений объектов ниже, которые я дал своему объекту. первый объект имени вещи объекты объекта разрешения Значение представления, которое я хочу обновить как ложное.
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" } ]
Я хочу обновить первый объект представления объекта разрешения-ложь
ожидаемый результат составляет:
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" } ]
Заранее спасибо, пожалуйста, помогите кому-нибудь…
Комментарии:
1. obj[0][‘разрешения’][‘Просмотр’] = ложь
Ответ №1:
Я бы предложил создать функцию, скажем setPermission
, для получения соответствующей записи, а затем соответствующим образом установить разрешения:
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; }
Вы также можете искать товары id
, например, по:
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 =gt; 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; }