안녕하세요 두 개의 배열이 하나의 200 + 개체 (절대 변경) 및 정수 배열입니다 (NSNumber 개체로) 어떤 것이 가장 쉬운 방법은 세 번째 배열을 만들 수 있습니다 배열 2의 인덱스 배열에 포함되는 배열 1의 모든 객체 배열?목표 C는 인덱스에서 인덱스를 추출합니다
답변
하나의 옵션의 방법을 사용할 수 있습니다 objectsAtIndexes:
NSArray *objects = @[@"A", @"B", @"C", @"D", @"E", @"F", @"G"];
NSArray *indexArray = @[@(0), @(2), @(6)];
NSMutableIndexSet *indexSet = [NSMutableIndexSet indexSet];
for (NSNumber *number in indexArray) {
[indexSet addIndex:[number unsignedIntegerValue]];
}
NSArray *filtered = [objects objectsAtIndexes:indexSet];
결과 : A, C, G
물론 가능하다면, 인덱스 세트 대신에 인덱스 세트를 직접 사용하는 것이 좋습니다. n 어레이.
아니면 그냥 간단한 루프를 사용할 수 있습니다.
NSMutableArray *filtered = [[NSMutableArray alloc]
initWithCapacity:indexArray.length];
for (NSNumber *number in indexArray) {
[filtered addObject:objects[[number unsignedIntegerValue]]];
}
감사합니다.이 대답은 제가 찾고있는 것이 었습니다. 마지막 질문 내 배열 내가 다시 얻을 (필터) 위의 코드와 함께 imutable 배열된다, 내가 어떻게 그것을 추가 필터링 할 수 있도록 변경할 수있는 배열로 생성합니까? – user1096447
'NSMutableArray * filtered = [NSMutableArray arrayWithArray : [objects objectsAtIndexes : indexSet]]; – DrummerB
당신은 세트를 만들고 NSIndexSet
에 인덱스의 배열을 변환 한 후 사용하는 것이 NSMutableSet
NSArray *array1 = @[ @1, @2, @3 ];
NSArray *array2 = @[ @2 ];
NSMutableSet *set = [NSMutableSet setWithArray:array1];
[set intersectSet:[NSSet setWithArray:array2]];
NSLog(@"%@", set.allObjects);
//=>(2)
- 1. 목표 - C는/iOS의 사파리
- 2. Flac 변환기 목표 -C는?
- 3. 목표 - C는 비동기 방식
- 4. 목표 C는 인터페이스에서 실행
- 5. 목표 - C는 : MyClass.m에서 여러 인수
- 6. 목표 -C는 변수에 대한 무작위 값을 변경합니다.
- 7. 목적 C는
- 8. <> 인덱스에서 int 인덱스를 사용하여 객체를 가져올 수 있습니까?
- 9. C는 C
- 10. 목적 C는 -
- 11. C는 아니지만 C는 질문입니다.
- 12. C는
- 13. C는
- 14. C는
- 15. C는 ++ :
- 16. 특정 인덱스에서 목록에 추가
- 17. 숫자 인덱스에서 행 삭제 - SQL
- 18. LINQ는 인덱스에서 작동합니까?
- 19. 목적은-c는 클래스
- 20. 돌아 인덱스 배열의 목표 다
- 21. C# 2 인덱스에서 이진 검색
- 22. 인덱스에서 enum 요소를 얻는 방법
- 23. 멀티 인덱스에서 값을 얻는 방법
- 24. 목적 C는 "할 - 동안"
- 25. 수입 C는
- 26. C는 루프
- 27. C는 충분히
- 28. 목적 C는
- 29. 오브젝티브 C는
- 30. 마스크 [C는 ++]
두 번째 배열 대신'NSIndexSet'을 사용할 수 있다면. 그럼 그냥'[array1 objectsAtIndexes : indexSet]' –
두 가지 해결책을 모두 볼 수 있습니다. u가 실제로 원하는 것을 이해하는 예제를 줄 수 있습니까? –