JavaScript - Как сделать массив, который содержит объекты по ссылке? - PullRequest
0 голосов
/ 23 сентября 2010

Я использую JavaScript Mapping Library - OpenLayer для создания наложения маркеров.Я хочу динамически управлять маркерами: добавьте новые и удалите существующие маркеры из слоя.

способ добавить новый маркер в слой с помощью команды:

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

какВы можете видеть, что параметры инициализации содержат только координаты и изображение значка, а не идентификатор, даже не как необязательный параметр.

для управления маркерами, я хочу создать 2-мерный массив, который содержит массив маркеров по ссылке и идентификатору массива.

тогда, когда я захочу удалить маркер со слоя, команда будет просто:

markers.removeMarker(ArrayMarkers[i]);

Как мне нажать на элементв массив JavaScript по ссылке?

Как запустить элементы ArrayMarkers по ссылке?

Ответы [ 2 ]

4 голосов
/ 23 сентября 2010

Попробуйте:

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

По сути, JavasScript обычно использует ссылки для передачи объектов. Вы уже передаете ссылку в библиотеку. Вы можете использовать ту же технику.

1 голос
/ 23 сентября 2010

В JavaScript вы не можете выдвигать переменную по значению по ссылке ... это делается автоматически в зависимости от типа переменной.

Я полагаю, ваши маркеры являются объектами. Таким образом, они будут помещены в массив по ссылке. Идентификаторы - String, они будут добавлены по значению.

...