【发布时间】:2020-05-14 14:32:42
【问题描述】:
有一个数组
const arr = [1, 'abc', [], ['John'], {}, {name: 'Smith'}, null, 0];
如何获取没有空值的新数组? (空数组和空对象也算空值)。
我的变种似乎有点硬编码:
const newArr = arr.filter(elem =>
(elem && Object.keys(elem).length !== 0)
|| (typeof(elem) == 'number' && elem !== 0));
是否可以编写更少或更简单的条件?
【问题讨论】:
-
这能回答你的问题吗? Remove empty elements from an array in Javascript大概这个问题有类似的解决方案,我去看看。
-
!= null,但它接受所有虚假值,例如 false 和 {} -
如果您使用的是 lodash 库,那么已经有一个实用程序 isEmpty 用于相同的。
标签: javascript arrays filter is-empty