gpt4 book ai didi

javascript - 如何判断数组中的对象是否不为空?

转载 作者:行者123 更新时间:2023-12-01 01:12:06 24 4
gpt4 key购买 nike

假设我有一个数组,如下所示:

arr = [{}, {}, {}, {}]

我希望能够知道数组的长度,只计算其中至少具有一个属性的对象。

[{}, {name: "Derby County", odds: 2}, {}, {}] // 1

[{}, {name: "Derby County", odds: 2}, {name: "Fullham", odds: 3} ,{}] // 2

如何实现这一目标?

最佳答案

arr.filter(x => Object.keys(x).length).length

正如其他答案中所解释的,Object.keys() 返回给定对象的属性名称。内部 .length 是一种仅过滤至少具有一个属性的项目的快捷方式。外部的 .length 告诉有多少对象符合描述。

更新:

[].filter() 方法采用一个返回 thruthy/falsy 值的函数。大于 0 的数字是真实的,因此它与 .length !== 0 相同。

这里假设数组中包含的任何元素都是非空的。在这种假设下,检查 [].filter() 内的对象是否为 null 是没有意义的。使用 TypeScript 时,它是对 arr 的静态检查。如果假设被打破,就会抛出一个错误,这是我通常希望的。我不隐藏运行时错误。如果这里出现运行时错误,我将检查该假设。但我不确定这里的情况是否如此。

关于javascript - 如何判断数组中的对象是否不为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55073388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com