javascript - 从对象中删除空数组
问题描述
如果它是空的,我想从对象中删除一个数组。我已经尝试过了,它可以工作,但显然它正在改变原始数据,这对我来说并不是一个真正的问题。我只是想知道这是否是正确的方法。
const data = {
arr1: [],
arr2: ['ok'],
arr3: ['ok']
}
Object.entries(data).forEach(([key, value]) => {
if (value.length === 0) {
delete data[key]
}
})
console.log(data)
.as-console-wrapper { max-height: 100% !important; top: 0; }
解决方案
也许是这样的(以避免编辑原始数据):
const data = {
arr1: [],
arr2: ['ok'],
arr3: ['ok']
}
let res = Object.entries(data).reduce((acc, el) => {
if (el[1].length > 0) {
acc[el[0]] = el[1]
}
return acc;
}, {})
console.log(res)
推荐阅读
- api - 颤振:获取帖子列表是最佳实践代码吗?
- laravel - Laravel 控制器 HTML 输出
- go - 如何检查是否应用了 CQL 查询
- vue.js - 如何在 Vue 中监听嵌套组件的事件
- python - 将 pandas 数据集保存到 csvs 而不覆盖现有文件
- asp.net-core - .NET Core - 自包含部署不起作用
- python-3.x - 在 Python 3 中从 dbus 迁移到 GDbus
- gdb - 在使用 gdb 的指令中间反汇编?
- database - B加树比跳过列表有什么优势?
- jinja2 - How to get rid of special char '(u'