摘要:方法一利用去重方法二利用嵌套,然后去重方法三利用去重方法四利用方法五利用方法六利用當前元素,在原始數組中的第一個索引當前索引值,否則返回當前元素方法七利用遞歸去重排序后更加方便去重遞歸,然后數組去重方法八利用數據結構去重數組
方法一:利用ES6 Set去重
方法二:利用for嵌套for,然后splice去重function unique(arr){ return Array.from(new set(arr)) }
function unique(arr){ for(var i=0;i方法三、利用indexOf去重function unique(arr){ if(!Array.isArray(arr)){ console.log("type error!") return false; } var array=[]; for(var i=0;i方法四、利用sort()function unique(arr){ if(!Array.isArray(arr)){ console.log("type error!") return false; } var array=[arr[0]]; for(var i=1;i方法五、利用includesfunction unique(arr){ if(!Array.isArray(arr)){ console.log("type error!") return false; } var array=[]; for(var i=0;i方法六、利用filter方法七、利用遞歸去重function unique(arr) { return arr.filter(function(item, index, arr) { //當前元素,在原始數組中的第一個索引==當前索引值,否則返回當前元素 return arr.indexOf(item, 0) === index; }); }方法八、利用Map數據結構去重function unique(arr) { var array= arr; var len = array.length; array.sort(function(a,b){ //排序后更加方便去重 return a - b; }) function loop(index){ if(index >= 1){ if(array[index] === array[index-1]){ array.splice(index,1); } loop(index - 1); //遞歸loop,然后數組去重 } } loop(len-1); return array; }方法九、利用reduce+includesfunction arrayNonRepeatfy(arr) { let map = new Map(); let array = new Array(); // 數組用于返回結果 for (let i = 0; i < arr.length; i++) { if(map.has(arr[i])) { // 如果有該key值 map.set(arr[i], true); } else { map.set(arr[i], false); // 如果沒有該key值 array.push(arr[i]); } } return array ; }方法十、[...new Set(arr)]function unique(arr){ return arr.reduce((prev,cur) => prev.includes(cur) ? prev : [...prev,cur],[]); }[...new Set(arr)] //相對于第一種方法來說只是簡化了代碼
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/106590.html
摘要:引子數組去重是一個老生常談的話題,在面試中也經常會被問道。其中如果數組是排序的,去重運算效率更高,因為排序能夠將相同的數排列在一起,方便前后比較。當數組有序對于對象的去重,我們知道為,所以使用比較對象在實際場景中沒有意義。 引子 數組去重是一個老生常談的話題,在面試中也經常會被問道。對于去重,有兩種主流思想: 先排序,線性遍歷后去重,時間復雜度O(n*log2n); 使用哈希,空間換...
摘要:專題系列第三篇,講解各種數組去重方法,并且跟著寫一個前言數組去重方法老生常談,既然是常談,我也來談談。它類似于數組,但是成員的值都是唯一的,沒有重復的值。 JavaScript 專題系列第三篇,講解各種數組去重方法,并且跟著 underscore 寫一個 unique API 前言 數組去重方法老生常談,既然是常談,我也來談談。 雙層循環 也許我們首先想到的是使用 indexOf 來循...
摘要:數組去重,一般都是在面試的時候才會碰到,一般是要求手寫數組去重方法的代碼。如果是被提問到,數組去重的方法有哪些你能答出其中的種,面試官很有可能對你刮目相看。數組去重的方法一利用去重中最常用不考慮兼容性,這種去重的方法代碼最少。 數組去重,一般都是在面試的時候才會碰到,一般是要求手寫數組去重方法的代碼。如果是被提問到,數組去重的方法有哪些?你能答出其中的10種,面試官很有可能對你刮目相看...
摘要:工作過程中經常會用到數組去重,用到的時候往往一時想不到好方法,所以這里來總結一下去重方法。和方法分別為添加成員方法和得到鍵值方法。因此,利用方法也可以實現數組的去重。 工作過程中經常會用到數組去重,用到的時候往往一時想不到好方法,所以這里來總結一下去重方法。使用es6去重代碼很簡單,而且ES6已經相當普及了。所以先來介紹一下es6中的方法。 1.ES6中Map結構方法 function...
閱讀 1261·2021-09-02 13:36
閱讀 2714·2019-08-30 15:44
閱讀 2972·2019-08-29 15:04
閱讀 3193·2019-08-26 13:40
閱讀 3643·2019-08-26 13:37
閱讀 1172·2019-08-26 12:22
閱讀 1003·2019-08-26 11:36
閱讀 1214·2019-08-26 10:41