Обновите массив значений вложенного объекта

#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; }