찾기 배열의 키 이벤트의 유닉스 타임 스탬프 곳입니다. 즉 이제 JS 우리가 이벤트 객체의 다음과 같은 배열을 가정 해 봅시다 :나는 "<em>이벤트</em>"의 배열을 처리하고있어 가까운 배열 인덱스
var MyEventsArray=[];
MyEventsArray[1513957775]={lat:40.671978333333, lng:14.778661666667, eventcode:46};
MyEventsArray[1513957845]={lat:40.674568332333, lng:14.568661645667, eventcode:23};
MyEventsArray[1513957932]={lat:41.674568332333, lng:13.568661645667, eventcode:133};
and so on for thousands rows...
데이터 아약스 호출 함께 전송 JS으로 처리 할 JSON로 인코딩됩니다. 데이터 세트가 수신되면 다른 유닉스 타임 스탬프를 사용하여 다른 소스에서 오는 1513957845라고 말하면서 그 때 일어난 이벤트를 찾고 싶습니다 ... 아주 쉽습니다. 배열에서 요소를 가져와야합니다. 주어진 인덱스 (위 목록의 두 번째 인덱스). 이제 질문 : 주어진 색인을 찾을 수 없다는 것을 상상하십시오 (우리가 UXTimestamp = 1513957855를 찾고 있다고 상상해보십시오).이 색인은 배열에 존재하지 않지만 은 가장 가까운 색인을 갖고 싶습니다. MyEventsArray [1513957845] 요소를 가져 와서 1513957845는 1513957855와 가장 근접한 인덱스입니다. 이 결과를 얻으려면 어떻게해야합니까? 배열을 수신 할 때 배열 색인을 처리하는 데 어려움이 있습니다. 색인이 어디서 시작되는지 모르겠습니다.
기계가 그런 상황을 어떻게 처리할까요? 기계가 각 행 사이에 배치 된 더미/빈 요소에 대한 메모리를 할당 (및 낭비) 할 것인가 아니면 컴파일러가 자체 인덱스를 작성하고 공간을 최적화 할 수있는 능력이 있습니까? 즉 우리가하고있는 것처럼 인덱스 플레이하는 것이 안전하다거나 같이 배열을 할당하는 것이 좋습니다 :
이 경우var MyEventsArray=[];
MyEventsArray['1513957775']={lat:40.671978333333, lng:14.778661666667, eventcode:46};
MyEventsArray['1513957845']={lat:40.674568332333, lng:14.568661645667, eventcode:23};
MyEventsArray['1513957932']={lat:41.674568332333, lng:13.568661645667, eventcode:133};
and so on for thousands rows...
키와 인덱스가 명확하게이를 얻을 수 있어요 그래서 여기에 다른 우리가 키 값을 알지 못하더라도 MyArray [0]의 첫 번째 요소입니다. 이 접근법이 더 비쌉니다 (여기서 우리는 인덱스와 키를 메모리에 저장해야합니다) 아니면 컴파일러에서 효과가 동일합니까?
화려한 솔루션, 나는 Object.keys(). map을 과소 평가했습니다. 그것은 내가 찾고 있었던 바로 그 것이다. –