对于我的网络应用程序,我需要允许在2个标记之间添加标记。
我有一系列标记,当我创建标记时,我会按下标记。
我的问题,我没有到达我的阵列工作。我在地图上添加了正确位置的标记,在前一个和下一个之间,但是,如何在正确的索引中插入我的数组? 我在标记1和2之间添加,因此,新标记必须具有索引2,然后,旧索引2必须具有索引3 ....
` 功能AddMarkerAfter(i) {
var lat = (markers[i].getPosition().lat() + markers[(i+1)].getPosition().lat()) / 2;
var lng = (markers[i].getPosition().lng() + markers[(i+1)].getPosition().lng()) / 2;
var marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lng),
map: map,
title: 'Number ' + (i+1),
draggable: true
});
var l = markers.length;
for (var j=i; j<l; j++)
{
markers[j+1] = markers[j];
}
markers[i] = marker;
}`
但是,结果是灾难性的...有一种方法可以“推”出阵列?
谢谢!
我的上帝啊! 我用这个简单的方法解决了我的问题:
markers.splice(i, 0, marker);
抱歉!
答案 0 :(得分:0)
我认为您正在寻找array.splice()函数(example)。
答案 1 :(得分:0)
使用数组切片和concat函数拆分数组并重新加入其中的新元素。
使用整数的版本:
var arr = [1,2,4,5,6];
var startarr = arr.slice(0,2);
alert(startarr);
var endarr = arr.slice(2);
alert(endarr);
arr = startarr.concat([3], endarr);
alert(arr);