我正在尝试从值为Array(0)的对象中删除键。这是对象:
{fruit: Array(1), dairy: Array(2), vegetables: Array(0)}
这是期望的结果:
{fruit: Array(1), dairy: Array(2)}
到目前为止,我一直在使用delete运算符和.filter / .reduce方法。
任何帮助都会很棒:)
答案 0 :(得分:1)
只需遍历对象的键,检查该键的值是否为空数组,如果是,则将其删除:
let obj = {
a: [1],
b: [],
c: 5,
d: false
}
for (const key in obj) { if (Array.isArray(obj[key]) && !obj[key].length) delete obj[key] };
console.log(obj);
答案 1 :(得分:0)
filter / reduce运算符适用于数组,不适用于对象。如果必须使用filter / reduce运算符,则可以尝试:
const obj = {a: [1], b: [1,2], c: []};
const filtered = Object.keys(obj)
.filter(key => Array.isArray(obj[key]) && obj[key].length != 0)
.reduce((acc, key) => {acc[key] = obj[key]; return acc}, {});
console.log(filtered);