gpt4 book ai didi

javascript - 如何在javascript中过滤对象数组?

转载 作者:行者123 更新时间:2023-11-28 12:11:38 26 4
gpt4 key购买 nike

这是我的输入:

const data = [
{ group: [{ label: "Can View" }, { label: "Can Create" }] },
{ topgroup: [{ label: "Can View" }, { label: "Can Create" }] },
{ emptyGorup: [] }
];

我正在使用此代码将对象数组转换为对象

方法一:

let permissions =
data &&
data.reduce((a, b) => {
const onlyKey = Object.keys(b)[0];
a[onlyKey] = b[onlyKey].map(i => i.value);
return a;
}, {});
//Output : {group:["can view","can create"],topgroup:["can view","can create"],emptygroup:[]}

我的问题是,如果对象属性为空[],我不想获取对象属性。例如,在我的输出中,我可以看到对象属性emptygroup是[]。

 {emptygroup:[]}.

如果emptygroup是[],我的预期输出将是

//Output : {group:["can view","can create"],topgroup:["can view","can create"]}

我该怎么做?

最佳答案

尝试检查数组的长度

const permissionData = [
{ group: [{ label: "Can View" }, { label: "Can Create" }] },
{ topgroup: [{ label: "Can View" }, { label: "Can Create" }] },
{ emptyGorup: [] }
];

let permissions =
permissionData &&
permissionData.reduce((a, b) => {
const onlyKey = Object.keys(b)[0];
if(b[onlyKey].length) {
a[onlyKey] = b[onlyKey].map(i => i.label);
}
return a;
}, {});

console.log(permissions)

关于javascript - 如何在javascript中过滤对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60812050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com