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

Javascript 即使某些项为空,如何检查数组中的所有项?,javascript,arrays,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)

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

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索引位置为空,则谓词函数永远不会运行超过0索引位置。以下是一幅更好地描述结构的图像:

问题:


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

您可以检查对象是否存在

:

回调
对数组的每个索引调用,而不仅仅是那些具有赋值的索引。这意味着与只访问指定值的方法相比,稀疏数组的效率可能更低

var数组=[];
数组[1]={name:'johndoe',address:'123 Main St',registered:true};
var hasValue=array.find(personObj=>personObj&&!!personObj.registed)

console.log(hasValue)
array.find(personObj=>!!personObj.registed)
这将在
0
未定义的寄存器一起中断
这是一个有点X/Y问题-最好不要首先使用稀疏数组,它们很可怕。使用一个对象来代替。看起来你可以使用一个对象来代替那个用例中的数组…在给定的索引中设置对象与某个ID相关,所以我真的无法重新构造它…我听说第一个具有真实属性的对象是我所关心的