js的面試與筆試 JS去重的幾種方法與效能比較

2021-08-21 20:55:12 字數 1429 閱讀 9398

1、新陣列巢狀對比     二次測試時間  13   59

思路:定義乙個新陣列,並存放原陣列的第乙個元素,然後將元素組一一和新陣列的元素對比,若不同則存放在新陣列中。

array.prototype.unique=function () 

}return res;

};

3、物件去重         7     13   去除string有缺陷

思路: 利用物件屬性存在的特性,如果沒有該屬性則存入新陣列。

array.prototype.unique3 = function();

for(var i = 0; i < this.length; i++)

}return res;

};

4、includes    10     34

思路:利用陣列原型物件上的includes方法。

array.prototype.unique4=function () 

}return res;

};

5、from +set(es6)       8     12

思路:利用 es6的set 方法。

array.prototype.unique5=function () ;
6、filter + includes     9      32

思路:利用陣列原型物件上的 filter 和 includes方法。

array.prototype.unique6=function () );

return res;

};

7、lastindexof  17   73
思路:利用陣列原型物件上的 lastindexof 方法。

array.prototype.unique7=function () }}

return this;

}

9、indexof  8  30
思路: 利用陣列的indexof下標屬性來查詢。

array.prototype.unique9=function () else

}var start=new date().gettime();

console.log(arr2.unique9());

var end=new date().gettime();

總結:

1、能用es6的環境下,用from +set(es6)  ,簡單、效能好、無漏洞

2、不能用es6的環境下,用indexof    ,比較常用、效能也還不錯、無漏洞

3、在只有數字的情況下,追求最好的效能用物件去重 (有字串的排序,最好不用,會去除不乾淨)

js陣列去重的幾種方式

雙重for迴圈去重 思路 i 1,2,2,2,3,true,undefined,true true undefined undefined 7,8,9 從第乙個元素開始 j 2,2,2,3,true,undefined,true true undefined undefined 7,8,9 2,2,...

Js 的幾種去重 一維

寫的幾種陣列去重方法 第一種 利用排序方法,然後比較當前元素與下乙個元素是否相等 function repeat1 arr console.log result 第二種 巧用乙個indexof方法來查詢當前元素是否在乙個字串裡.這裡可以用array檢索 function repeat2 arr co...

js 陣列去重的幾種方法

問題 隨機10個不相同的數 數值範圍11 25之間的 並且存放到陣列中 函式 隨機生成乙個從min到max的數 function randfn min,max 方法1 遍歷已存入的數和當前隨機的數比較,引入開關判斷是否存放 var arr for var i 0 i 10 i if flag con...