相关疑难解决方法(0)

获取数组中的最后一项

这是我到目前为止的JavaScript代码:

var linkElement = document.getElementById("BackButton");
var loc_array = document.location.href.split('/');
var newT = document.createTextNode(unescape(capWords(loc_array[loc_array.length-2]))); 
linkElement.appendChild(newT);
Run Code Online (Sandbox Code Playgroud)

目前,它从URL中获取数组中倒数第二个项目.但是,我想检查数组中的最后一项是"index.html",如果是,请抓住第三项到最后一项.

javascript arrays

1012
推荐指数
44
解决办法
138万
查看次数

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

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

现在,当用户按下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)]}
Run Code Online (Sandbox Code Playgroud)

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

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

每次位置更新时,我会使用'for(x in loc)`语句从列表中获取最后一个位置并使用它来更新标记.如何在哈希中从数组中选择最后一个元素?

javascript arrays google-maps google-maps-markers

497
推荐指数
13
解决办法
82万
查看次数

解构以获取es6中数组的最后一个元素

在coffeescript中这很简单:

coffee> a = ['a', 'b', 'program']
[ 'a', 'b', 'program' ]
coffee> [_..., b] = a
[ 'a', 'b', 'program' ]
coffee> b
'program'
Run Code Online (Sandbox Code Playgroud)

es6是否允许类似的东西?

> const [, b] = [1, 2, 3]                              
'use strict'                                           
> b  // it got the second element, not the last one!                      
2                                                      
> const [...butLast, last] = [1, 2, 3]          
SyntaxError: repl: Unexpected token (1:17)                                                                                                                                                        
> 1 | const [...butLast, last] = [1, 2, 3]                                                                                                                                                        
    |                  ^                                                                                                                                                                          
    at Parser.pp.raise (C:\Users\user\AppData\Roaming\npm\node_modules\babel\node_modules\babel-core\node_modules\babylon\lib\parser\location.js:24:13)                                           
Run Code Online (Sandbox Code Playgroud)

当然我可以用es5方式做到 -

const …
Run Code Online (Sandbox Code Playgroud)

destructuring ecmascript-6

93
推荐指数
10
解决办法
6万
查看次数