作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的输入:
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/
我是一名优秀的程序员,十分优秀!