簡體   English   中英

javascript for循環不起作用

[英]javascript for loop doesn't work

我有一些編碼經驗,但我是Javascript的新手。

我嘗試創建一個html文件,顯示谷歌地圖並在其上放置一些標記。

當我一次只做一個標記時,它工作正常,如下所示:

function initMap() {
    var map = ...;
    var icon = ...;

    var pt1 = {lat: ..., lng: ...};
    var marker1 = new google.maps.Marker({
        position: pt1,
        map: map,
        icon: icon,
        label: {..., text: '1'},
        title: 'Marker 1'
    });

    var pt2 = {lat: ..., lng: ...};
    var marker2 = new google.maps.Marker({
        position: pt2,
        map: map,
        icon: icon,
        label: {..., text: '2'},
        title: 'Marker 2'
    });

    var pt3 = {lat: ..., lng: ...};
    var marker3 = new google.maps.Marker({
        position: pt3,
        map: map,
        icon: icon,
        label: {..., text: '3'},
        title: 'Marker 3'
    });
}

現在我嘗試將標記的定義放在一個數組中並在循環中創建標記,但我無法使其工作。

我試過這樣的:

var places = [
    {id: 1, lat: ..., lng: ..., title: 'Marker 1'},
    {id: 2, lat: ..., lng: ..., title: 'Marker 2'},
    {id: 3, lat: ..., lng: ..., title: 'Marker 3'}
]

function initMap() {
    var map = ...;
    var icon = ...;

    for(var i=0; i<places.length; i++) {
        var marker = new google.maps.Marker({
            position: {lat: places[i].lat, lng: places[i].lng},
            map: map,
            icon: icon,
            label: {..., text: ''+places[i].id},
            title: places[i].title
        });
    }
}

window.alert(places[i].title)放置一個window.alert(places[i].title)顯示所有標題,因此數組的定義和循環的頭部似乎沒問題。 但是當我嘗試在循環內創建標記時,沒有地圖也沒有顯示標記,所以我想必定會出現某種錯誤,但我無法弄明白。

你看到我做過的任何語法錯誤嗎?

您每次都會覆蓋“標記”變量。

var marker = new google.maps.Marker({

你必須像為點(lat,long,tile)一樣為標記創建一個數組。

它應該是:

var places = [
    {id: 1, lat: ..., lng: ..., title: 'Marker 1'},
    {id: 2, lat: ..., lng: ..., title: 'Marker 2'},
    {id: 3, lat: ..., lng: ..., title: 'Marker 3'}
]

function initMap() {
    var map = ...;
    var icon = ...;
    var markers = [];

    for(var i=0; i<places.length; i++) {
        markers.push(new google.maps.Marker({
            position: {lat: places[i].lat, lng: places[i].lng},
            map: map,
            icon: icon,
            label: {..., text: ''+places[i].id},
            title: places[i].title
        }));
    }
}

你應該使用const作為數組(標記和位置)並讓for循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM