选择JavaScript数组中的最后一个元素[重复]

这个问题在这里已经有答案了
获取数组中的最后一项

(55个答案)

四年前关闭的

我正在制作一个应用程序,实时更新用户的位置和路径,并将其显示在谷歌地图上。我的功能允许使用每秒更新的对象同时跟踪多个用户

现在,当用户在Android应用程序中按下一个按钮时,坐标会被发送到一个数据库,每次位置改变时,地图上的一个标记就会被更新(并形成一条多段线)

因为我有多个用户,所以我发送一个唯一的随机生成的字母数字字符串,以便为每个用户显示一个单独的路径。当JS从数据库中提取这些数据时,它会检查用户是否存在,如果不存在,它会创建一个新的键,值为列表。它看起来像这样:

loc={f096012e-2497-485d-8adb-7ec0b9352c52:[new google.maps.LatLng(39,-86),
新的google.maps.LatLng(38,-87),
新google.maps.LatLng(37,-88)],
44ed0662-1a9e-4c0e-9920-106258dcc3e7:[新的google.maps.LatLng(40,-83),
新的google.maps.LatLng(41,-82),
新的google.maps.LatLng(42,-81)]}

我正在做的是存储一个坐标列表作为键的值,键是用户的ID。每次通过添加到列表中更改位置时,我的程序都会不断更新该列表(这可以正常工作)

我需要做的是每次位置更改时更新标记的位置。我想通过选择数组中的最后一个项来实现这一点,因为这将是最后一个已知的位置。现在,每次更改位置时,都会向地图添加一个新标记(示例中的每个点都会在该位置显示一个标记),因此标记将继续添加

每次位置更新时,我都会使用“for(x in loc)”语句从列表中获取最后一个位置,并使用它更新标记。如何从散列中的数组中选择最后一个元素

如何访问数组的最后一个元素

看起来是这样的:

var my_array=/*此处的某些数组*/;
var last_element=my_array[my_array.length-1];

在您的案例中,如下所示:

var array1=loc['f096012e-2497-485d-8adb-7ec0b9352c52'];
var last_element=array1[array1.length-1];

或者,在较长的版本中,不创建新变量:

loc['f096012e-2497-485d-8adb-7ec0b9352c52'][loc['f096012e-2497-485d-8adb-7ec0b9352c52']长度为-1];

如何添加使其更简单的方法

如果您喜欢创建函数/快捷方式来完成这些任务,请输入以下代码:

如果(!Array.prototype.last){
Array.prototype.last=函数(){
返回此[this.length-1];
};
};

将允许您通过调用数组的last()方法获取数组的最后一个元素,例如:

loc['f096012e-2497-485d-8adb-7ec0b9352c52'].last();

您可以在此处检查它是否工作:http://jsfiddle.net/D4NRN/

发表评论