질문 : JavaScript 배열에서 마지막 요소 선택
사용자의 위치와 경로를 실시간으로 업데이트하여 구글 맵에 표시하는 어플리케이션을 만들고 있습니다. 매초 업데이트되는 개체를 사용하여 여러 사용자를 동시에 추적 할 수있는 기능이 있습니다.
현재 사용자가 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)`문을 사용하여 목록에서 마지막 위치를 가져 와서 마커를 업데이트합니다. 해시 내의 배열에서이 마지막 요소를 어떻게 선택합니까?
답변
다음과 같이 보입니다.
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();
여기에서 작동하는지 확인할 수 있습니다. http://jsfiddle.net/D4NRN/
출처 : https://stackoverflow.com/questions/9050345/selecting-last-element-in-javascript-array
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
javascript 배열을 복사하는 방법 (0) | 2021.11.16 |
---|---|
JavaScript에서 상수를 사용하는 방법 (0) | 2021.11.15 |
JavaScript 삼항연산자를 사용하는 방법 (0) | 2021.11.15 |
CSS 'clearfix' 를 사용하는 방법 (0) | 2021.11.12 |
JavaScript로 파일 확장자를 얻는 방법 (0) | 2021.11.12 |