Javascript 对象扩展

Javascript Object Extension

本文关键字:扩展 对象 Javascript      更新时间:2023-09-26

我正在使用传单在我的网站上绘制地图。我想动态构建图层切换器。构造函数采用一个对象,键是要在地图上显示的图层的名称,值是图层对象本身。我正在从 AJAX 返回的数组动态构建切换器。我遇到的问题是我不知道如何让数组对象的值成为新对象中的键。我的代码如下所示:

$.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收到此错误,直接指向data后的.。有什么想法吗?

我认为您只是在寻找括号表示法。取而代之的是:

overlayMaps = $.extend ({}, overlayMaps, {data.elems[i].name, layer});

你想要这个:

var opts = {};
opts[data.elems[i].name] = layer;
overlayMaps = $.extend ({}, overlayMaps, opts);