首页 > 解决方案 > 仅返回对象中非空字符串或空数组的值

问题描述

到目前为止,我有以下功能:

export const useClearEmptyAttributes = (
  obj: { [s: string]: unknown } | ArrayLike<unknown>,
) => {
  return Object.fromEntries(Object.entries(obj).filter(([_, v]) => v));
};

在此处输入图像描述

它消除了一个空字段“电话号码”,它是空的,但不是 socialLinks(它是一个数组)。

如何修改我的函数以消除空数组,而不仅仅是空字符串?

谢谢!

标签: javascriptreactjstypescript

解决方案


如果您想添加检查空数组以及当前检查,这将起作用:

export const useClearEmptyAttributes = (
  obj: { [s: string]: unknown } | ArrayLike<unknown>,
) => {
  return Object.fromEntries(Object.entries(obj).filter(([_, v]) => Array.isArray(v)?v.length:v));
};

但是,如果您还想检查空对象等,可以进一步修改。


推荐阅读