获取稀疏JavaScript数组的第一个元素

ama*_*eur 5 javascript arrays jquery sparse-array

我在javascript中有一个对象数组.我用jquery.

我如何获得数组中的第一个元素?我不能使用数组索引 - 因为我在将对象添加到数组时分配每个元素索引.因此索引不是0,1,2等.

只需要获取数组的第一个元素?

Ben*_*tto 5

如果您不使用按顺序编号的元素,则必须循环直到找到第一个元素:

var firstIndex = 0;
while (firstIndex < myarray.length && myarray[firstIndex] === undefined) {
    firstIndex++;
}
if (firstIndex < myarray.length) {
    var firstElement = myarray[firstIndex];
} else {
    // no elements.
}
Run Code Online (Sandbox Code Playgroud)

或者一些同样愚蠢的结构。这将为您提供第一个项目的索引,您可能会或可能不关心它。

如果这是您需要经常执行的操作,则应该保留对当前第一个有效索引的后备引用,因此这将成为 O(1) 操作,而不是每次 O(n) 操作。如果您经常需要迭代真正稀疏的数组,请考虑另一种数据结构,例如在其旁边保留一个对象,将序数结果反向映射到索引或适合您的数据的东西。