수천 개의 객체가있는 모델이 있습니다. ID가 있으면 저장하고 단일 객체를 검색하는 가장 효율적인 방법이 무엇인지 궁금합니다. ID는 긴 숫자입니다.
이것이 제가 생각한 두 가지 옵션입니다. 옵션 1에서는 증가하는 인덱스가있는 간단한 배열입니다. 옵션 2에서 그것은 연관 배열이며 아마도 차이가 있다면 객체 일 것입니다. 내 질문은 주로 단일 객체를 검색해야하지만 때로는 반복하여 정렬해야 할 때 어느 것이 더 효율적인지입니다.
비 연관 배열이있는 옵션 1 :
var a = [{id: 29938, name: 'name1'},
{id: 32994, name: 'name1'}];
function getObject(id) {
for (var i=0; i < a.length; i++) {
if (a[i].id == id)
return a[i];
}
}
연관 배열이있는 옵션 2 :
var a = []; // maybe {} makes a difference?
a[29938] = {id: 29938, name: 'name1'};
a[32994] = {id: 32994, name: 'name1'};
function getObject(id) {
return a[id];
}
최신 정보:
좋아, 두 번째 옵션에서 배열을 사용하는 것은 의문의 여지가 없습니다. 따라서 두 번째 옵션의 선언 줄은 실제로 다음 var a = {};과 같아야합니다. 단지 질문은 주어진 ID를 가진 객체를 검색 할 때 더 나은 성능을 나타내는 것입니다 : 배열 또는 id가 키인 객체.
또한 목록을 여러 번 정렬 해야하는 경우 답변이 변경됩니까?

