3 回答

TA貢獻1825條經(jīng)驗 獲得超4個贊
嘗試檢查數(shù)組的長度
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)

TA貢獻1856條經(jīng)驗 獲得超17個贊
您可以擴展您當(dāng)前的代碼。獲得對象后,您可以使用過濾器過濾掉帶有空數(shù)組的鍵,并從過濾后的值再次構(gòu)建對象
let obj = {
group: ["can view"],
topgroup: ["can view", "can create"],
emptygroup: []
}
let finalObj = Object.fromEntries(Object.entries(obj).filter(([key, value]) => Array.isArray(value) && value.length))
console.log(finalObj)

TA貢獻1831條經(jīng)驗 獲得超9個贊
您可以在 reduce 中添加條件:
let permissions =
permissionData &&
permissionData.reduce((a, b) => {
const onlyKey = Object.keys(b)[0];
if (a[onlyKey]) {
a[onlyKey] = b[onlyKey].map(i => i.value);
}
return a;
}, {});
添加回答
舉報