0

私は地図アプリケーションを持っています。インターフェイスには、コンボ ボックスに 5 つのインジケーター (HDI、寿命、..、..、..) が含まれています。FireBug 1.9.2 を使用して各インジケーターの「データ」を確認したところ、各インジケーターの「データ」内にインジケーターの名前がリストされ、その中に (1960.. ...2010 年まで) これらの日付の一部には、対応する指標に従ってデータが含まれており、これらの日付の一部にはデータが含まれていません "".

私がやりたいことは、各インジケーターの日付を確認することです。日付にデータまたは値が含まれている場合は、その日付を保存したいのですが、それ以外の場合は日付に何もしません。

私が投稿したスナップショットを見てください。おそらく、私がやりたいことについてより明確な認識が得られるでしょう。

また、この目標をどのように達成しようとしたかを確認してください。残念ながら、結果は私が望むものではありません:

function getYearsByIndicator(layername, indicator) {

var matchingLayers;
var vectorLayer;
var yearStore;

// get vector layer
matchingLayers = map.getLayersByName(layername);
if (matchingLayers.length == 1) {
    vectorLayer = matchingLayers[0];
}
else {
    console.log("getThematicStyleMap: Warning, the layer " + layername + " was not found!");
    return;
}

for (var i=0;i < vectorLayer.features.length;i++) {
    if (vectorLayer.features[i]['data'][indicator]) {
        // extract keys here!
    }
}

//build store containing the extracted keys

//return the store
return yearStore;

}

img1 img2 img3

4

1 に答える 1

1

オブジェクトなので、次の方法でアクセスできると思います。

$data->{propertyname}

編集:私は混乱していました.PHPの代わりにjavascriptを使用していると思います(これはあなたのタグの1つです)。JavaScript を使用している場合は、アクセスする配列variable["property"]["subproperty"]などの値にアクセスできます。

EDIT2:次を使用して確認できます

   if(data["HDI"][1980] != "")
   {
      //date is not empty
   }

EDIT3: 以下を使用してコンテンツを反復処理します。

for(var key in data["HDI"])
{
  //Key is 1980 etc
  if(data["HDI"][key] != "")
  {
    //Date is not empty
  }
}
于 2012-06-05T09:43:18.577 に答える