프로그래밍 언어/HTML,CSS,JS

JavaScript 배열에서 마지막 요소 선택

Rateye 2021. 11. 15. 10:58
728x90
반응형
질문 : 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
728x90
반응형