javascript - 在javascript中过滤嵌套对象
问题描述
我在另一个对象中有这个对象,我需要过滤它们以获取没有脱机状态的对象。
我需要通过具有“可用”状态的模进行过滤,并尝试使用地图来实现这一点,但这会导致地图不是函数的错误。我尝试使用过滤器,但这并没有给我正确的结果。我也尝试过使用 Object.keys,但没有得到我需要工作的结果。
如何过滤嵌套对象?
{
demo: {
modulos: {
demo1: {
state": "offline",
},
demo2: {
state": "available",
},
}
}
official: {
modulos: {
official1: {
state: "offline",
},
official2: {
state: "available",
},
}
}
}
解决方案
您可以使用减少:
const object = {
demo: {
modulos: {
demo1: {
state: "offline",
},
demo2: {
state: "available",
},
}
},
official: {
modulos: {
official1: {
state: "offline",
},
official2: {
state: "available",
},
}
}
};
const filteredObject = Object.keys(object).reduce((acc, outerProp) => {
Object.keys(object[outerProp].modulos).forEach((innerProp) => {
if (object[outerProp].modulos[innerProp].state !== 'offline') {
acc[outerProp] = {
modulos: {
[innerProp]: object[outerProp].modulos[innerProp]
}
}
}
});
return acc;
}, {});
console.log(filteredObject);
推荐阅读
- rust - Rust 2018 是否支持“if let”链接?
- python - 使用生成器分块读取 CSV 文件
- javascript - Flask + Jinja2 脚本导入
- python - 除了反向传播,我想在 CPU 上使用 Tensorflow
- autosys - Autosys 作业框在未满足其起始条件的情况下启动
- python - 使用 Keras 获取关于输入的损失函数梯度的错误
- css - 如何交替设置 4 个元素的样式并使用 css 重复?
- arrays - 如何从 csv 文件中查找数据
- python - 如何使用私有通道将 Flask python Web 应用程序推送到 Pivotal Cloud Foundry 以设置 anaconda 环境?
- parsing - OCaml:如何在没有堆栈的 LL 解析期间构造 AST