我想更新下面我給我的物件的嵌套物件值陣列。權限物件視圖值的名稱事物物件的第一個物件我想更新為假。
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"
}
]
提前致謝,請幫助任何人...
uj5u.com熱心網友回復:
我建議創建一個函式,比如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 => 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; }
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/370584.html
標籤:javascript 数组
