3

私はextjsを使用しています。要件に従ってストアから個別のデータを取得する必要があります。私のストアには、 AMERICAS 、 North Sea 、 SE Asia などの地域を持つネストされたリストではない単一のリストが含まれています。これらの領域自体には、subRegion、vesselName、および vehicleType の値があります。多くの重複レコードが含まれているため、地域に基づいて一意の値を取得する必要があります。以下のように試してみましたが、うまくいきません。誰でも達成する方法を教えてもらえますか? . 大変感謝しています。ありがとうございました。

var vesselStore=Ext.getStore('VesselStatusReportStore');
        var arr=new Array();
        var obj;      
        vesselStore.each(function(rec,index)
        {
            obj=new Object();
            if(rec.get('region')=='AMERICAS'){
                obj.subRegionAmerica=rec.get('subRegion');
                obj.vesselNameAmerica=rec.get('vesselName');
                obj.vesselTypeAmerica=rec.get('vesselType');
            }
            if(rec.get('region')=='NorthSea'){
                obj.subRegionNorthSea=rec.get('subRegion');
                obj.vesselNameNorthSea=rec.get('vesselName');
                obj.vesselTypeNorthSea=rec.get('vesselType');
            }
            if(rec.get('region')=='SE Asia'){
                obj.subRegionSEAsia=rec.get('subRegion');
                obj.vesselNameSEAsia=rec.get('vesselName');
                obj.vesselTypeSEAsia=rec.get('vesselType');
            }
            arr.push(obj);
            console.log(obj);
        });

ジョンソン:

[ { 
    "region" : "AMERICAS",
    "startDate" : null,
    "subRegion" : "US",
    "vesselName" : "Thoma-Sea � Hull #147",
    "vesselType" : "PSV"
  },
  { 
    "region" : "AMERICAS",
    "startDate" : null,
    "subRegion" : "US",
    "vesselName" : "Thoma-Sea � Hull #148",
    "vesselType" : "PSV"
  },
  { 
    "region" : "AMERICAS",
    "startDate" : null,
    "subRegion" : "Mexico",
    "vesselName" : "Thoma-Sea � Hull #148",
    "vesselType" : "PSV"
  }]
4

2 に答える 2

1

このセクションは意味がありません:

            obj=new Object();
            if(rec.get('region')=='AMERICAS'){
                obj.subRegionAmerica=rec.get('subRegion');
                obj.vesselNameAmerica=rec.get('vesselName');
                obj.vesselTypeAmerica=rec.get('vesselType');
            }
            if(rec.get('region')=='NorthSea'){
                obj.subRegionNorthSea=rec.get('subRegion');
                obj.vesselNameNorthSea=rec.get('vesselName');
                obj.vesselTypeNorthSea=rec.get('vesselType');
            }
            if(rec.get('region')=='SE Asia'){
                obj.subRegionSEAsia=rec.get('subRegion');
                obj.vesselNameSEAsia=rec.get('vesselName');
                obj.vesselTypeSEAsia=rec.get('vesselType');
            }
            arr.push(obj);

あなたは基本的に、「地域が何であれ、レコードをにコピーしてからobj、それobjを私の配列に追加してください」と言っています。

私はあなたがこれらの行に沿ってもっと何かを意味したと信じています:

var vesselStore=Ext.getStore('VesselStatusReportStore');
var iRegions = [];

vesselStore.each(function(rec,index)
{
    var iRegionName = rec.get('region');

    // Make sure theres a array item with the region name,
    // if not create a blank array;
    iRegions[ iRegionName ] = iRegions[ iRegionName ] || [];

    // Add the record to its corresponding array item.
    // (If you don't want the full record, you can just get the
    // fields individually like you did in your code).
    iRegions[ iRegionName ] = rec;
}
console.log( iRegions );
于 2013-04-04T12:15:41.917 に答える