0

ページを処理するプロトタイプを作成し、正常に追加 (プッシュ) しましたが、データを取得できましたが、失敗しました:

var foundImageIndex = Pages.indexFirst(function (item) { if (item.PageID == PageID) return true; });

ここでは、javascript ページ ハンドラー:

var Pages = new Array();

PageContainer = function () //constructor for the proxy
{
   // this._baseURL = url;
};

PageContainer.prototype =
{

    AddPage: function (data) {
        if (data == null) return;
        Pages.push({ PageID: data.PageID, SegmentID: data.SegmentID });
    },

    GetPage: function (PageID) {
        alert('getPage('+PageID+')=' + JSON.stringify(Pages));

        var foundImageIndex = Pages.indexFirst(function (item) { if (item.PageID == PageID) return true; });

        var dt = { PageID: Pages[foundImageIndex].PageID, SegmentID: Pages[foundImageIndex].SegmentID };
        return dt;
    }


};

次のように他のjsから呼び出します:

var gPageContainer = new PageContainer();

 for (var i = 0; i < SegStruct.SegmentsCount; i++) {
                var segRClass = //get from webservice
                gPageContainer.AddPage({ PageID: i, SegmentID: segRClass.SegmentID });

            }

私は呼び出しようとしています: gPageContainer.GetPage(1); GetPage: function (PageID)で失敗しまし た: var foundImageIndex = Pages.indexFirst(function (item) { if (item.PageID == PageID) return true; }); で -1 を返します。

foundImageIndex 常に -1

なぜ?

4

1 に答える 1

0

コンストラクターの前に以下を追加するだけです。

if (typeof Array.prototype.indexFirst == 'undefined') {
    Array.prototype.indexFirst = function (validator) {
        for (var i = 0; i <= this.length - 1; i++) {
            if (validator(this[i])) {
                return i;
            }
        }
        return -1;
    };
}
于 2012-05-05T10:21:18.023 に答える