【问题标题】:JavaScript - How to make an array that contains objects by reference?JavaScript - 如何创建一个包含引用对象的数组?
【发布时间】:2011-04-16 04:55:50
【问题描述】:

我正在使用 JavaScript 映射库 - OpenLayer 创建标记叠加层。 我想动态控制标记:添加新标记并从图层中删除现有标记。

向图层添加新标记的方法是通过命令:

markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon));

如你所见,初始化参数只包含坐标和图标图像,没有id,甚至没有作为可选参数。

为了控制标记,我要创建二维数组,其中包含标记数组通过引用和 ID 数组。

然后,当我想从图层中删除标记时,命令将是:

markers.removeMarker(ArrayMarkers[i]);

如何通过引用将元素推送到 JavaScript 数组?

如何通过引用在 ArrayMarkers 元素上运行?

【问题讨论】:

    标签: javascript arrays pass-by-reference openlayers


    【解决方案1】:

    试试:

    var ArrayMarkers = [];
    var myMarker = new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon);
    markers.addMarker(myMarker);
    ArrayMarkers.push(myMarker);
    

    基本上,JavaScript 通常使用引用来传递对象。您已经将引用传递给库。您可以使用相同的技术。

    【讨论】:

    • myMarker 在标记和 ArrayMarkers 中都指向同一个对象?
    【解决方案2】:

    在 JavaScript 中,您不能选择通过引用的值推送变量...这是根据变量的类型自动完成的。

    我猜你的标记是对象。因此它们将通过引用被推送到数组中。 id是String,按值推送。

    【讨论】:

      猜你喜欢
      • 2022-07-06
      • 1970-01-01
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多