【发布时间】:2023-01-25 03:48:30
【问题描述】:
我有一个对象数组
[
{
id: 1,
name: "dashboard",
permissions: {
view: {
default_checked: false,
custom_checked: true,
},
add: {
default_checked: false,
custom_checked: true,
},
},
},
{
id: 2,
name: "user",
permissions: {
view: {
default_checked: false,
custom_checked: true,
},
add: {
default_checked: false,
custom_checked: false,
},
},
},
{
id: 3,
name: "contact",
permissions: {
view: {
default_checked: false,
custom_checked: false,
},
add: {
default_checked: false,
custom_checked: false,
},
},
},
]
我想做的是筛选只有在权限对象内部具有 custom_checked: true 的对象并删除其他虚假(查看、添加)对象,因此输出将是
[
{
id: 1,
name: "dashboard",
permissions: {
view: {
custom_checked: true,
},
add: {
custom_checked: true,
},
},
},
{
id: 2,
name: "user",
permissions: {
view: {
custom_checked: true,
},
},
},
]
我努力了
const testArr = [];
arr.forEach((v) => {
for (let [key, value] of Object.entries(v.permissions)) {
if (value.custom_checked) {
testArr.push({
...v,
permissions: {
[key]: {
custom_checked: true,
},
},
});
}
}
});
console.log(testArr);
但我认为,由于我在内部遍历 v.permissions 对象,所以输出是一个一个地分离和获取对象。我该如何解决这个问题?
【问题讨论】:
标签: javascript