6

javascriptにオブジェクトの配列があります。私はjqueryを使用しています。

配列の最初の要素を取得するにはどうすればよいですか?オブジェクトを配列に追加するときに各要素にインデックスを割り当てるため、配列インデックスを使用できません。したがって、インデックスは0、1、2などになります。

配列の最初の要素を取得する必要がありますか?

4

7 に答える 7

4

連番の要素を使用しない場合は、最初の要素に到達するまでループする必要があります。

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

またはいくつかの同等の愚かな構造。これにより、最初のアイテムのインデックスが取得されます。これは、気にする場合と気にしない場合があります。

これを頻繁に行う必要がある場合は、現在の最初の有効なインデックスへの参照を脇に置いておく必要があります。これにより、毎回O(n)ではなくO(1)操作になります。真にスパースな配列を頻繁に反復する必要がある場合は、順序結果をインデックスにバックマップするオブジェクトを並べて保持するなど、別のデータ構造を検討してください。

于 2010-08-25T23:05:36.347 に答える
4

このfilterメソッドは、スパース配列で機能します。

var first = array.filter(x => true)[0];
于 2010-08-25T23:06:22.537 に答える
3

次のことを検討しましたか。

function getFirstIndex(array){
    var result;
    if(array instanceof Array){
        for(var i in array){
            result = i;
            break;
        }
    } else {
        return null;
    }
    return result;
}

?

そして、配列の最後の要素を取得する方法として:

function getLastIndex(array){
    var result;
    if(array instanceof Array){
            result = array.push("");
            array.pop;
        }
    } else {
        return null;
    }
    return result;
}

これらはいずれも jquery を使用しません。

于 2011-05-04T19:58:25.653 に答える
0

配列の操作を頻繁に行う必要がある場合は、アンダースコアライブラリに興味があるかもしれません。配列を操作するためのユーティリティメソッドを提供します。たとえば、compact

var yourArray = [];
yourArray[10] = "foo";
var firstValue = _.compact(yourArray)[0];

ただし、配列を作成しているときに何か奇妙なことをしているように聞こえます。おそらくArray.pushが役に立ちますか?

于 2010-08-25T23:11:31.637 に答える