javascript - 仅返回对象中非空字符串或空数组的值
问题描述
到目前为止,我有以下功能:
export const useClearEmptyAttributes = (
obj: { [s: string]: unknown } | ArrayLike<unknown>,
) => {
return Object.fromEntries(Object.entries(obj).filter(([_, v]) => v));
};
它消除了一个空字段“电话号码”,它是空的,但不是 socialLinks(它是一个数组)。
如何修改我的函数以消除空数组,而不仅仅是空字符串?
谢谢!
解决方案
如果您想添加检查空数组以及当前检查,这将起作用:
export const useClearEmptyAttributes = (
obj: { [s: string]: unknown } | ArrayLike<unknown>,
) => {
return Object.fromEntries(Object.entries(obj).filter(([_, v]) => Array.isArray(v)?v.length:v));
};
但是,如果您还想检查空对象等,可以进一步修改。
推荐阅读
- r - 如何防止 geom_text 重叠并使该图更易于显示?
- qt - Qt Threads and the default QSQLDatabase connection (sqlite)
- node.js - sequelize - 重复键值在 bulkinsert 后违反唯一约束错误
- c - 具有相同端口的 2 个线程上的 UDP 数据包
- r - 提取文本的匹配关键字
- c# - .NET Core 2.0 Partial views with one to many relationship
- ios - How change UITab bar position to top?
- c# - IValueConverter 不更新图像源
- php - 在php的foreach循环中显示带有在线源的图像,重复循环问题
- c++ - c/c++ 在我的应用程序中控制 Linux 服务