例如:
1
2
3
nsarray*array=@[@"12-11",@"12-11",@"12-11",@"12-12",@"12-13",@"12-14"];
參***: 1
2
3
4
5
6
7
8
9
10
11
12
nsmutablearray*resultarray=[[nsmutablearrayalloc]initwithcapacity:array.count];
// 外層乙個迴圈
for(nsstring*iteminarray)
} nslog(@"resultarray: %@",resultarray);
補充:原來集合操作可以通過valueforkeypath來實現的,去重可以一行**實現:
1
2
3
4
array=[arrayvalueforkeypath:@"@distinctunionofobjects.self"];
nslog(@"%@",array);
1
2
3
4
5
6
7
8
nsmutabledictionary*resultdict=[[nsmutabledictionaryalloc]initwithcapacity:array.count];
for(nsstring*iteminarray)
nsarray*resultarray=resultdict.allvalues;
nslog(@"%@",resultarray);
如果需要按照原來的公升序排序,可以這樣:
1
2
3
4
5
6
7
8
resultarray=[resultarraysortedarrayusingcomparator:^nscomparisonresult(id_nonnull obj1,id_nonnull obj2)];
nslog(@"%@",resultarray);
12
3
4
5
nsset*set=[nssetsetwitharray:array];
nsarray*resultarray=[set allobjects];
nslog(@"%@",resultarray);
如果要求有序,那就得排序,比如這裡要公升序排序:
1
2
3
4
5
6
7
8
resultarray=[resultarraysortedarrayusingcomparator:^nscomparisonresult(id_nonnull obj1,id_nonnull obj2)];
nslog(@"%@",resultarray);
補充:一直沒有使用過有序集合,網友們反饋到可以直接使用有序集合,感謝大家:
1
2
3
4
nsorderedset*set=[nsorderedsetorderedsetwitharray:array];
nslog(@"%@",set.array);
陣列去重的多種方法
陣列去重的方法有很多,廢話不多說下面只寫3種,分別是從複雜到簡單 1.利用foreach進行輪詢需要去重的陣列,然後通過判斷新陣列 這個新陣列需要在輪詢之前建立乙個空陣列 中是否包含進行新增不重複的每一項得到新陣列 此方法的缺點 function removedup arry return noma...
陣列去重的多種方法
1.將陣列的每乙個元素依次與其他元素做比較,發現重複元素,利用陣列方法splice 刪除重複元素 var arr 1 23,1 1,1 3,23 5,6 7,9 9,8 5,5 5,5 function norepeat arr return arr var arr2 norepeat arr co...
js 陣列去重多種方法
var arr 1,2,3,2,1,2,1,34,44 方法一 利用jquery unique var newarr unique arr 方法二 利用indexof去重 var newarr for var i 0 i if newarr.indexof arr i 1 return newarr...