arrays - 如何使用角度从数组中删除未定义的对象?
问题描述
let myArr=[{
"name": "",
"columns": [
{
"data": "test1",
"type": "",
},
undefined,
{
"data": "test1",
"type": "",
}
],
"info": "value",
}]
在具有未定义或空值的对象数组上方,我必须删除未定义的值。
解决方案
这可以通过组合Array.map()
、Object.keys()
、和(核心部分)来完成Array.reduce()
,如下面的可运行代码所示:Array.isArray()
Array.filter()
let myArr=[{
"name": "",
"columns": [
{
"data": "test1",
"type": "",
},
undefined,
{
"data": "test1",
"type": "",
}
],
"info": "value",
}]
myArr = myArr.map(o => Object.keys(o).reduce((acc, key) => {
let value = o[key];
if (Array.isArray(value)) {
value = value.filter(o2 => o2);
}
acc[key] = value;
return acc;
}, {}));
console.log(myArr);
推荐阅读
- google-cloud-platform - GCP K8s 无扩展事件基于日志的指标
- c++ - 在嵌入式系统中使用 noexcept 说明符的优点/缺点是什么?
- python - 如果参数不为空,则向方法调用添加参数
- nginx - 使用 Nginx 的 Docker 映像并在 docker compose 和 Jenkins Pipeline 中运行
- r - 如何裁剪栅格并更改其像元大小和范围以匹配模板栅格?
- python - 超过 4sum 时间限制(leetcode)
- javascript - 用JS更改选择的第一个选项文本
- python - 在 Django 中的另一个模型中使用一个模型
- html - 直接子级(子级组合器)选择器不限于子级
- tensorflow - ONNX 转换的 TensorFlow 保存模型在 CPU 上运行,但不在 GPU 上