1 回答

TA貢獻1797條經驗 獲得超4個贊
您在對象中忘記了幾個逗號permissions。下一個問題是您試圖檢查departmentIdin permissions,但它實際上就depId在那里。接下來是您不需要定義和跟蹤iand j,它們在函數中作為傳遞給運行函數的第二個參數方便地提供給您forEach。
這是您要實現的目標的工作版本:
permissions = [
[{
depId: 1,
branchId: 1,
val: true
}, {
depId: 1,
branchId: 2,
val: true
}, {
depId: 1,
branchId: 3
}],
[{
depId: 2,
branchId: 1
}, {
depId: 2,
branchId: 2
}, {
depId: 2,
branchId: 3
}],
[{
depId: 3,
branchId: 1
}, {
depId: 3,
branchId: 2
}, {
depId: 3,
branchId: 3,
val: true
}]
]
let data = {};
let j = 0;
permissions.forEach((row) => {
let i = 0;
let departmentSeen = false;
row.forEach((col) => {
if (col["val"] === true) {
data[`data[${j}][branches][${i}]`] = col.branchId;
data[`data[${j}][department]`] = col.depId;
i++;
departmentSeen = true;
}
});
if (departmentSeen) {
j++;
}
});
console.log(data);
添加回答
舉報