SelectedItems
이라는 int 배열이 있습니다. 나는 AvailableItems
이라는 객체가 들어있는 다른 배열을 가지고 있으며 json에서 파싱되었습니다. 이 Item
개체의 속성은 {ContainerID, ContainerName, ItemID, ItemName}
입니다.자바 배열 int 배열을 객체 배열로 변환
제가 ItemID
각각은 AvailableItems
에서 ItemID
에 대응 Item
객체로 대체 Items
의 배열 int 배열로부터 SelectedItems
변환 할. SelectedItems
의 각 ItemID
은 고유합니다.
SelectedItems
의 각 요소를 순환 한하지만 내가
SelectedItems
에 복사하는 데 필요한 객체 키가 해당
ItemID
을 찾기 위해
AvailableItems
매번 반복 자신을 찾을 수 있습니다.
그래서 기본적으로 매우 비효율적 인 루프를 만들었습니다. 루프 내부에서 반복되는 루프를 피함으로써 더 좋은 방법이 있는지 궁금합니다.
샘플 데이터 : AvailableItems
를 들어
, 당신은 1,000 개체 수 있습니다와
{
ContainerID: i,
ContainerName: 'SomeName',
ItemID: j,
ItemName: 'SomeOtherName'
}
이 다음
SelectedItems
는 int 치의
[23,43,64,34...]
감사의 배열입니다.
두 번째 배열을 첫 번째 배열에 따라 필터링 한 다음 Array와 같은 함수를 사용하여 결과를 반환 할 수 있습니다.필터를 사용하면 조건이 true가 될 때마다 Array.indexOf가있는 첫 번째 요소에 요소가 포함되어 있는지 확인할 수 있습니다. – mpm
@camus : 좋아요, 당신의 의견은 그것을 다시하는 법에 대한 아이디어를주었습니다. jQuery.extend를 사용하여 AvailableItems 배열을 CandidateItems라는 새 배열에 복사 한 다음 해당 배열을 반복합니다. 각 요소의 ItemID가 $ .InArray가있는 SelectedItems에 있는지 확인하고 삭제하지 않으면 해당 요소를 삭제합니다. 루프가 끝나면 SelectedItems에 CandidateArray를 할당하고 – frenchie