开发者社区> 问答> 正文

选择JavaScript数组中的最后一个元素

我正在制作一个可实时更新用户的位置和路径并将其显示在Google Map上的应用程序。我具有允许使用一个对象(同时每秒更新一次)同时跟踪多个用户的功能。

现在,当用户按下Android应用程序中的按钮时,坐标将发送到数据库,并且每次位置更改时,地图上的标记都会更新(并形成折线)。

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

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

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

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

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

展开
收起
保持可爱mmm 2020-01-13 18:51:52 633 0
1 条回答
写回答
取消 提交回答
  • 如何访问数组的最后一个元素

    看起来像这样:

    var my_array = /* some array here */; 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'].length - 1];

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

    如果您热衷于创建函数/快捷方式来完成此类任务,请使用以下代码:

    if (!Array.prototype.last){ Array.prototype.last = function(){ return this[this.length - 1]; }; };

    last()在您的情况下,将允许您通过调用数组的方法来获取数组的最后一个元素:

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

    问题来源于stack overflow

    2020-01-13 18:52:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript函数 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载