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...