iOS遍历数组删除不符合条件的元素

qq_35256334 2019-06-17 08:21:42
请问一下:一个非空的不可变数组,里面元素类型有字典和数组,请问如何删除其中数组类型的元素呢?用OC语言实现(新人自学中,比较笨,麻烦附上详细代码)
...全文
1177 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiangxiaopenyou 2019-07-18
  • 打赏
  • 举报
回复
NSArray *array = @[[NSArray new], [NSDictionary new], [NSArray new], [NSDictionary new]]; //假设是你的数组 NSMutableArray *mutableArray = [array mutableCopy]; //采用逆序遍历 防止删除元素时crash [mutableArray enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { if ([obj isKindOfClass:[NSArray class]]) { [mutableArray removeObject:obj]; } }]; array = [mutableArray copy]; //得到结果 NSLog(@"%@", array);
So灬低调 2019-06-18
  • 打赏
  • 举报
回复
- (void)viewDidLoad { [super viewDidLoad]; NSDictionary *dic1 =@{@"1":@"test"}; NSDictionary *dic2 =@{@"2":@"test2"}; NSDictionary *dic3 =@{@"3":@"test3"}; NSArray *arr1 = [NSArray arrayWithObjects:@"1",@"1",@"1", nil]; NSArray *arr2 = [NSArray arrayWithObjects:@"2",@"2",@"2", nil]; NSArray *arr3 = [NSArray arrayWithObjects:@"3",@"3",@"3", nil]; NSArray *testArr = [NSArray arrayWithObjects:dic1,arr1,dic2,dic3,arr2,arr3, nil]; NSLog(@"改变前:testArr:%@",testArr); testArr = (NSArray *)[self deletaDataInArr:testArr]; NSLog(@"改变后:testArr:%@",testArr); } -(NSMutableArray *)deletaDataInArr:(NSArray *)passArr { NSMutableArray *tempArr = [[NSMutableArray alloc] init]; for(NSObject *obj in passArr) { if([obj isKindOfClass:[NSArray class]]) { [tempArr addObject:obj]; } } return tempArr; }

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧