陣列去重複

2021-09-07 05:54:40 字數 1172 閱讀 5608

1.開闢新的記憶體空間

判斷是否存在,若不存在則新增到陣列中,得到最終結果的順序不發生變化

nsarray *originalarr = @[@1, @2, @3, @1, @3]; nsmutablearray *resultarrm = [nsmutablearray array]; for (nsstring *item in originalarr)  } nslog(@"result : %@", resultarrm); 

2.利用nsdictionary的allkeys(allvalues)方法

可以將nsarray中的元素存入乙個字典,然後利用allkeys或者allvalues取得字典的所有鍵或值,這些鍵或值都是去重的

nsarray *originalarr = @[@1, @2, @3, @1, @3]; nsmutabledictionary *dictm = [nsmutabledictionary dictionary]; for (nsnumber *n in originalarr)  nslog(@"%@",[dictm allvalues]); 

注:結果為無序的, 也就是說不包吃原有順序, 可自行加入排序演算法

3.利用nsset特性, 放入集合自動去重

nsset的特性: 確定性、無序性、互異性

這種方法更快,利用nsset不會新增重複元素的特性。不過去重的陣列沒有進行排序,如果需要排序,可以使用nssortdescriptor類。

nsarray *originalarr = @[@1, @2, @3, @1, @3];

nsset *set = [nsset setwitharray:originalarr];

nslog(@"result: %@", [set allobjects]);

nsarray *originalarr = @[@1, @2, @3, @1, @3];

nsarray *result = [originalarr valueforkeypath:@"@distinctunionofobjects.self"];

用眼看著,乙個乙個挑選出來,重新輸入計算機(開個玩笑)

陣列去重複

最近在寫demo的時候新學了一招 陣列去重複的方法 思路 利用json特性。1 建立乙個空json,通過對key的檢索 獲得json中 key 值 json arr i 2 對該值取反 json arr i 說明該值不存在。3 這樣我們可以對其賦值,json arr i true 這裡賦什麼值無所謂...

js陣列去重複

1.遍歷陣列法 實現思路 新建乙個陣列,遍歷去要重的陣列,當值不在新陣列的時候 indexof為 1 就加入該新陣列中 var arr 2,8,5,0,5,2,6,7,2 function unique1 arr return hash 2.陣列下標判斷法 呼叫indexof方法,效能和方法1差不多...

陣列去重複演算法

var ary 1,23,12,12,1,12,32,1,1 function norepetition ary 3.返回新的陣列 return newary var result norepetition ary console.log result 方法不改變元素組 相容版 相容ie低版本的in...