私は、私のサイトの地図のリーフレットを使っています。私はレイヤースイッチャーを動的に構築したいと思っています。コンストラクタはオブジェクトをとります。キーはマップ上に表示するレイヤの名前であり、値はレイヤオブジェクト自体です。私は、AJAXによって返された配列からスイッチャーを動的に構築しています。私が抱えている問題は、配列オブジェクトの値を新しいオブジェクトのキーにする方法を知らないということです。私のコードは次のようになります:JavaScriptオブジェクト拡張子
$.ajax ({
url: '...',
data: { ... },
dataType: 'json',
success: function (data) {
var overlayMaps = {};
for (var i in data.elems) {
var layer = new Layer (...);
overlayMaps = $.extend ({}, overlayMaps, {data.elems[i].name : layer});
map.addLayer (layer);
}
map.addControl (new L.Control.Layers (baseMaps, overlayMaps));
}
});
私の質問は9行目です。 data.elems[i].name
は働きたくありません。このエラーはmissing : after property id
で、の後には.
になります。何か案は?
をあなたはそれが仕事をしたい "しないと言うとき、あなたは何を意味するのですか?それは価値がないのですか?デバッガのwatch listにdata.elems [i]を追加するとどうなりますか? –
オブジェクトキーは**のみ**文字列にできます。文字列以外のものを渡すと、文字列に変換されます。 –
私はこのエラー 'missing:after property id'を得て、' data'の後ろの '.'を指すことを意味します。それを含めて申し訳ありません。 – Nik