即使某些项目为空,如何检查数组中的所有项目?

时间:2019-09-20 06:50:55

标签: javascript arrays

我有一个对象数组。数组根据其索引位置获取一个值。有时数组只会在某个索引处具有一个值,例如

array = [], //initial value
array[1] = {name: 'John Doe', address: '123 Main St', registered: true}

如果谓词函数找到任何一项中存在的值,我只是想将变量设置为true / false。

var hasValue = array.find(personObj => !!personObj.registered)

问题:

如果0索引位置为空,则上面的函数将始终返回false。如果谓词函数为空,则谓词函数永远不会运行超过0索引位置。这是一张更好地描述结构的图像:

enter image description here

问题:

即使某些项目为空,如何正确检查数组中的所有项目?

1 个答案:

答案 0 :(得分:3)

您可以检查对象是否存在。

Array#find

  

callback会为数组的每个索引调用,而不仅仅是那些分配了值的索引。这意味着与仅访问分配值的方法相比,稀疏数组的效率可能较低。

var array = [];

array[1] = { name: 'John Doe', address: '123 Main St', registered: true };

var hasValue = array.find(personObj => personObj && !!personObj.registered)

console.log(hasValue);