JavaScript數(shù)組去重實現(xiàn)方法小結
本文實例講述了JavaScript數(shù)組去重實現(xiàn)方法。分享給大家供大家參考,具體如下:
一、ES3方法:
var arr = ['a', 'a', 'b', 'b', 'b', 'c', 'e', 'f', 1, 2, 2, 3, 3, 3];
創(chuàng)建一個空數(shù)組與原來數(shù)組進行比較
//與前面的數(shù)組進行比較(不會改變原數(shù)組) function deleteRepeat() { var result = []; label: for(var i=0; i<arr.length; i++) { for(var j=0; j<result.length; j++) { if(result[j] == arr[i]) { continue label; } } result.push(arr[i]); } return result; }
//與后面的進行比較(不會改變原數(shù)組) function deleteRepeat() { var result = []; for(var i = 0; i < arr.length; i++) { for(var j = i+1; j < arr.length; j++) { if(arr[i] == arr[j]) { j = ++i; } } result.push(arr[i]); } return result; }
// splice()方法 (會改變原數(shù)組) function deleteRepeat() { for(var i = 0; i < arr.length; i++) { for(var j = i+1; j < arr.length; j++) { if(arr[i] == arr[j]) { arr.splice(j, 1); j--; } } } return arr; }
// 利用對象的屬性不能重復特點(不會改變原數(shù)組) function deleteRepeat() { var result = []; var object = {}; for(var i = 0; i < arr.length; i++) { var t = arr[i]; if(!object[t]) { result.push(t); object[t] = true; } } return result; }
// 先排序再去重(只需要進行一次for循環(huán)、 會改變原數(shù)組) function deleteRepeat() { var arr1 = arr.sort(); var result = []; for(var i = 0; i < arr1.length; i++) { if(arr1[i] != arr1[i+1]) { result.push(arr1[i]); } } return result; }
二、ES5方法:
利用IndexOf()方法
map()方法或forEach()方法或filter()方法
三、ES6方法
var a = [1, 2, 2, 3, 3, 3]; [...new Set(a)]; [1, 2, 3]
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。
PS:這里再為大家提供幾款相關工具供大家參考使用:
在線去除重復項工具:
http://tools.jb51.net/code/quchong
在線文本去重復工具:
http://tools.jb51.net/aideddesign/txt_quchong
更多關于JavaScript相關內(nèi)容還可查看本站專題:《JavaScript數(shù)組操作技巧總結》、《JavaScript字符與字符串操作技巧總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript數(shù)學運算用法總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》及《JavaScript錯誤與調試技巧總結》
希望本文所述對大家JavaScript程序設計有所幫助。
相關文章
JavaScript仿微信(電話)聯(lián)系人列表滑動字母索引實例講解(推薦)
這篇文章主要介紹了仿微信(電話)聯(lián)系人列表滑動字母索引實例,通過for循環(huán)進行判斷,具體操作步驟大家可查看下文的詳細講解,感興趣的小伙伴們可以參考一下。2017-08-08JavaScript數(shù)組排序reverse()和sort()方法詳解
這篇文章主要介紹了JavaScript數(shù)組排序reverse()和sort()方法詳解,需要的朋友可以參考下2017-12-12微信小程序實現(xiàn)的動態(tài)設置導航欄標題功能示例
這篇文章主要介紹了微信小程序實現(xiàn)的動態(tài)設置導航欄標題功能,結合實例形式分析了微信小程序使用wx.setNavigationBarTitle接口動態(tài)設置導航欄標題的相關操作技巧,需要的朋友可以參考下2019-01-01javascript Xml增刪改查(IE下)操作實現(xiàn)代碼
比較不錯的實現(xiàn)代碼,大家可以仔細的看下,思路。2009-01-01JavaScript與jQuery中文檔就緒函數(shù)的區(qū)別
這篇文章主要介紹了JavaScript與jQuery中文檔就緒函數(shù)的區(qū)別,文章內(nèi)容介紹詳細,具有一的的參考價值,需要的小伙伴可以參考一下2022-03-03