0

別の JS オブジェクトの内部配列を持つ JS オブジェクトがあります。内部onwは次のようになります

function outerObj()
{
    this.items = new Array();
    this.clear = function () {
        this.items = new Array();
    }
    function __item(v1, v2, v3, v4) {
        this.Val_1 = v1;
        this.Val_2 = v2;
        this.Val_3 = v3;
        this.Val_4 = v4;
    }
    this.add = function (vA, vB, vC, vD) {
        this.items.push( new __item(vA, vB, vC, vD) );
    }
    ...
}

配列は、結果の XML を使用して、SPServicesgetListItems()呼び出しによって読み込まれます。.each( . . . )結果は順序付けされています ( <OrderBy>) が、結果は一般的な苛立ちです。

1
10
11
2
21
3
42A
42B

文字を含めることから逃れることはできません (これは実際のアイテムの名前です)。

1
2
3
10
11
21
42A
42B

提案?

4

2 に答える 2

1

エリシャ、実はこんな感じなんです。

    items.sort(function (v1, v2) { 
        /* algorythm here */ 
    }); 

アルゴリズムは、配列が値ではなくオブジェクトを保持しているという事実を認識するインテリジェンスを追加できる場所であり、ソート対象のプロパティを実際に調べることができる場所です。

実際、外部関数を作成して、無名関数から呼び出すことができます。

ありがとうエリシャ。これは私を軌道に乗せました。

回答をフォーマットする機能を使用できるように、ここで回答しています。しかし、エリシャはこれで功績を認めるべきです。

ちなみに、関数は負の数、ゼロ、または正の数を返す必要があります。返されるものの符号は、渡された 2 つの引数間のソート順を示します。

于 2013-07-23T20:21:01.513 に答える
1

JavaScript array.sort() を使用するだけです

コードは次のようになります。

this.items.sort()

リンクは次のとおりです:Javascriptソートリファレンス

于 2013-07-23T19:05:55.943 に答える