怎么将数组数据批量的提取出来。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么将数组数据批量的提取出来。相关的知识,希望对你有一定的参考价值。
参考技术A 首先假设你是要在表1里引索入表2的内容step 1. 在你想要得到引用结果的表格列第一行输入=VLOOKUP,会自动跳出用逗号隔开的4串字符,每个字符串代表一个步骤,显示加黑的是当前步骤
step 2. 在表1里选择你要引索列的列名称,然后输入逗号,切记是英文半角的逗号,然后会自动进入下一步骤
step 3. 在表2里选择你要引索的区域,记住你想要返回到表1里的数据在索引区域的第几列,假设是2,然后输入英文逗号,自动进入下一步骤
step 4. 输入step3中2,再输入英文逗号,自动进入下一步骤
step 5. 输入true 或者false (前者是模糊匹配,后者是精确匹配)然后回车
OK 表1里应该就出来你想要的表2里的数据了。
注意,1.成功引用的前提是你的整个EXCELL表中没有空格,若有的话请替换掉。
2.此法使用于在相同或不同的工作簿。在不同工作簿时请确保两个工作簿都是打开的。
将数组里相同元素提取出来
将数组Arr里相同的元素提取出来放在一个小数组里,再将小数组放在一个大数组dataArry里
NSMutableArray *Arr =[NSMutableArray arrayWithObjects:@"1",@"2",@"1",@"3",@"2",@"2",@"4",@"1",@"2",@"2",@"2",@"2", nil];
1、创建一个数组dataArry
NSMutableArray *dataArr = [NSMutableArray array];
2、用两个for循环对Arr进行遍历
方法一、
for (NSInteger i = 0; i<Arr.count; i++) {
NSMutableArray *tempArr = [NSMutableArray array];
NSString *str = Arr[i];
[tempArr addObject:str];
for (NSInteger j = i+1; j<Arr.count; j++) {
NSString *tempStr = Arr[j];
if ([str isEqual:tempStr]) {
[tempArr addObject:tempStr];
[Arr removeObjectAtIndex:j]; //判断如果两个值一样则添加到tempArr里,再把此元素删除
}
}
[dataArr addObject:tempArr];
}
输出结果:dataArry:[[1,1,1],[2,2,2,2],[3],[2,2],[4],[2]]
结果并不是我们想要的,问题出在Arr里的元素个数是会变的,而J的值是依次增加的,那么我们根据元素下标判断时就会出现错误
解决方法:1、把J的循环该成倒序
for (NSInteger j = Arr.count-1; j>i; j--)
{
}
2、不要在for循环里删除元素,在for循环外面把Arr里整个tempArr数组里的元素全部删除,然后让i-1,始终保持从头开始遍历
for (NSInteger i = 0; i<Arr.count; i++) {
NSMutableArray *tempArr = [NSMutableArray array];
NSString *str = Arr[i];
[tempArr addObject:str];
for (NSInteger j = Arr.count-1; j>i; j--) {
NSString *tempStr = Arr[j];
if ([str isEqual:tempStr]) {
[tempArr addObject:tempStr];
}
}
[dataArr addObject:tempArr];
if (tempArr.count>1) {
[Arr removeObjectsInArray:tempArr];
i-=1;
}
NSLog(@"dataArry:%@",dataArr);
以上是关于怎么将数组数据批量的提取出来。的主要内容,如果未能解决你的问题,请参考以下文章