我想迭代一个对象数组来创建一个对象,其属性是为迭代中的当前对象命名的,其值使用当前的数据。
$.each(data, function(idx, obj) {
baseLayers[idx] = new Array();
baseLayers[idx][obj.name] = new L.TileLayer(obj.url, {maxZoom: 18, id: obj.key, attribution: mbAttr});
});
最后,我想得到一个像这样的对象
baseLayers = {
'Map Box': new L.TileLayer('https://{s}.tiles.mapbox.com/v3/{id}/{z}/{x}/{y}.png', {maxZoom: 18, id: 'examples.map-i875mjb7', attribution: mbAttr}),
'OSM': new L.TileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {maxZoom: 18, attribution: mbAttr})
};
答案 0 :(得分:2)
试试这个
var baseLayers = {}
$.each(data, function(idx, obj) {
baseLayers[obj.name] = new L.TileLayer(obj.url, {maxZoom: 18, id: obj.key, attribution: mbAttr});
});
答案 1 :(得分:1)
看不到我认为你想要的数据:
var baseLayers = {};
$.each(data, function(idx, obj) {
baseLayers[obj.name] = new L.TileLayer(obj.url, {maxZoom: 18, id: obj.key, attribution: mbAttr});
});
您正在尝试添加未在预期输出中显示的额外级别