【发布时间】:2021-02-19 04:38:13
【问题描述】:
我有一个这样的对象数组:
var a = [{'id': 1}, {'id':''}, {'id':3}]
现在我需要计算除空 id 之外的数组,所以答案应该是 2。 我尝试使用过滤器功能,但无法得到预期的输出。
这是我到目前为止完成的代码。
a.filter(Boolean).length; // Returns 3. It should be 2.
非常感谢任何想法。谢谢
【问题讨论】:
-
你能解释一下
a.filter(Boolean).length;想要做什么吗? -
我认为您误解了文档。您不会将文字“布尔”作为
filter的参数。根据您是保留还是排除数组中的每个项目,您传递返回 true 或 false 的内容。通过传递Boolean,您只是为每个元素返回一个非假值,因此它不起作用。试试这个例子来更好地理解过滤器:codepen.io/garethredfern/pen/zBLLYW
标签: javascript