在JavaScript中,我有一个数组anArray
,可能有以下几种状态:
[]
[2]
[2, empty, 5, empty, empty, 10]
中(从chrome的控制台获取)我想计算该数组中元素的确切数量,所以:
[]
应该给我0
[2]
应该给我1
[2, empty, 5, empty, empty, 10]
应该给我3
我怎样才能做到这一点?
我已经尝试过,比如数组的状态是[2, empty, 5, empty, empty, 10]
:
anArray[1]
给了我错误"ReferenceError: element is not defined"
,因为我认为1
的索引甚至不存在。null
或undefined
进行了比较,但与之前一样,访问anArray[1]
之类的空元素会在评估之前抛出错误/警告in
这样的1 in anArray
,但即使元素为空,它每次也都是真的。提前致谢。
修改 让我直接从Chrome控制台上安装我的快照 Please look me
答案 0 :(得分:2)
anArray.reduce(c => c + 1,0)
由于每个数组方法都跳过未设置的数组位置,这将计算稀疏数组的所有元素
答案 1 :(得分:0)
const arr = [2, , 5, , , 10]
const n = arr.filter(x => x).length
console.log(n)