每次循环覆盖变量

时间:2014-07-17 21:10:23

标签: javascript

我正在循环以从谷歌方向获得一大堆长/拉。但是,longArr和latArr最后只有一个结果,就好像var每次被清除一样

 function showSteps(directionResult) {
            // For each step, place a marker, and add the text to the marker's
            // info window. Also attach the marker to an array so we
            // can keep track of it and remove it when calculating new
            // routes.
            var myRoute = directionResult.routes[0].legs[0];
            var longArr = "";
            var latArr = "";
            for (var i = 0; i < myRoute.steps.length; i++) {
                var Long = myRoute.steps[i].lat_lngs[0].B;
                var Lat = myRoute.steps[i].lat_lngs[0].k;
                longArr = Long + Long + "|";
                latArr = Lat + Lat + "|";
                alert(longArr);
                var marker = new google.maps.Marker({

                    position: myRoute.steps[i].start_location,
                    map: map
                });
                attachInstructionText(marker, myRoute.steps[i].instructions);

                markerArray[i] = marker;
            }

            $('.long').val(longArr);
            $('.lat').val(latArr);

        }

2 个答案:

答案 0 :(得分:0)

要与字符串的现有值连接,您也必须连接变量。

选项1:

longArr = longArr + Long + Long + "|" ;
latArr = latArr + Lat + Lat + "|";

选项2:

longArr += Long + Long + "|" ;
latArr += Lat + Lat + "|";

答案 1 :(得分:0)

首先,您需要将数组声明为数组。

var longArr = [];
var latArr = [];

然后你需要追加他们

longArr.push(Long + Long);
latArr.push(Lat + Lat);

将数组写入字符串时使用join

$('.long').val(longArr.join('|'));
$('.lat').val(latArr.join('|');