摘要:方法一利用去重方法二利用嵌套,然后去重方法三利用去重方法四利用方法五利用方法六利用當(dāng)前元素,在原始數(shù)組中的第一個索引當(dāng)前索引值,否則返回當(dāng)前元素方法七利用遞歸去重排序后更加方便去重遞歸,然后數(shù)組去重方法八利用數(shù)據(jù)結(jié)構(gòu)去重數(shù)組
方法一:利用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) { //當(dāng)前元素,在原始數(shù)組中的第一個索引==當(dāng)前索引值,否則返回當(dāng)前元素 return arr.indexOf(item, 0) === index; }); }方法八、利用Map數(shù)據(jù)結(jié)構(gòu)去重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,然后數(shù)組去重 } } loop(len-1); return array; }方法九、利用reduce+includesfunction arrayNonRepeatfy(arr) { let map = new Map(); let array = new Array(); // 數(shù)組用于返回結(jié)果 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)] //相對于第一種方法來說只是簡化了代碼
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/106590.html
摘要:數(shù)組去重,一般會在面試的時候才會碰到,要求手寫數(shù)組去重方法的代碼。在實際項目中碰到的數(shù)組去重,一般都是后臺去處理,很少讓前端處理數(shù)組去重。數(shù)組去重的方法一利用去重中最常用如果不考慮兼容性,這種去重的方法代碼最少。 數(shù)組去重,一般會在面試的時候才會碰到,要求手寫數(shù)組去重方法的代碼。如果是被提問到,數(shù)組去重的方法有哪些?你能答出其中的10種,面試官很有可能對你刮目相看。 在實際項目中碰到的...
摘要:引子數(shù)組去重是一個老生常談的話題,在面試中也經(jīng)常會被問道。其中如果數(shù)組是排序的,去重運算效率更高,因為排序能夠?qū)⑾嗤臄?shù)排列在一起,方便前后比較。當(dāng)數(shù)組有序?qū)τ趯ο蟮娜ブ?,我們知道為,所以使用比較對象在實際場景中沒有意義。 引子 數(shù)組去重是一個老生常談的話題,在面試中也經(jīng)常會被問道。對于去重,有兩種主流思想: 先排序,線性遍歷后去重,時間復(fù)雜度O(n*log2n); 使用哈希,空間換...
摘要:專題系列第三篇,講解各種數(shù)組去重方法,并且跟著寫一個前言數(shù)組去重方法老生常談,既然是常談,我也來談?wù)?。它類似于?shù)組,但是成員的值都是唯一的,沒有重復(fù)的值。 JavaScript 專題系列第三篇,講解各種數(shù)組去重方法,并且跟著 underscore 寫一個 unique API 前言 數(shù)組去重方法老生常談,既然是常談,我也來談?wù)劇?雙層循環(huán) 也許我們首先想到的是使用 indexOf 來循...
摘要:數(shù)組去重,一般都是在面試的時候才會碰到,一般是要求手寫數(shù)組去重方法的代碼。如果是被提問到,數(shù)組去重的方法有哪些你能答出其中的種,面試官很有可能對你刮目相看。數(shù)組去重的方法一利用去重中最常用不考慮兼容性,這種去重的方法代碼最少。 數(shù)組去重,一般都是在面試的時候才會碰到,一般是要求手寫數(shù)組去重方法的代碼。如果是被提問到,數(shù)組去重的方法有哪些?你能答出其中的10種,面試官很有可能對你刮目相看...
摘要:工作過程中經(jīng)常會用到數(shù)組去重,用到的時候往往一時想不到好方法,所以這里來總結(jié)一下去重方法。和方法分別為添加成員方法和得到鍵值方法。因此,利用方法也可以實現(xiàn)數(shù)組的去重。 工作過程中經(jīng)常會用到數(shù)組去重,用到的時候往往一時想不到好方法,所以這里來總結(jié)一下去重方法。使用es6去重代碼很簡單,而且ES6已經(jīng)相當(dāng)普及了。所以先來介紹一下es6中的方法。 1.ES6中Map結(jié)構(gòu)方法 function...
閱讀 1281·2021-09-02 13:36
閱讀 2734·2019-08-30 15:44
閱讀 2990·2019-08-29 15:04
閱讀 3208·2019-08-26 13:40
閱讀 3657·2019-08-26 13:37
閱讀 1196·2019-08-26 12:22
閱讀 1034·2019-08-26 11:36
閱讀 1230·2019-08-26 10:41