JS陣列去重

2021-08-27 06:54:32 字數 546 閱讀 9477

網上關於js陣列去重的方法很多,我這人比較懶,一般知道了乙個最快速的,就不想再記那些慢的了。之前比較公認的一種快速方式是引用類似hash表的思想。**如下:

var ddd = [1,2,4,5,2, 222,1,5,6];

var uq = {};

var rq = ;

for(var i=0; i<9; i++)

}return rq;

但是這個方法有個很大的疏漏,就是沒有考慮到 '222' 和 222 這種元素會被當作相同元素被剔除的情況。於是我做了如下的修改。

var ddd = [1,2,4,5,2, '222', 222,1,5,6];

var uq = {};

var rq = ;

var prefix = '';

for(var i=0; i<8; i++) else

if(!uq[ddd[i]+prefix])

}return rq;

沒做什麼高深的修改,就是加了個字首,區分下。這樣,結果就是 [1,2,4,5,'222', 222,6]

JS陣列去重,物件去重

例項1根據indexof去重,indexof的好處就是返回的是首次出現的位置,這樣後面即使出現的值一樣,也只能返回第一次出現的索引,當然這個只適用於簡單的陣列 物件陣列去重 const objarr const obj const newobjarr for let i 0 i objarr.len...

js 陣列去重

function unique arr if isrepeated return result 建立乙個新的陣列,迴圈原有的陣列,每取乙個數就迴圈判斷新建的陣列中是否有和這個相等的值,沒有則插入。方法簡單,但是有雙重迴圈,陣列大了之後效率低。所以能一次迴圈解決最好。var str new array...

JS 陣列去重

我總共想出了三種演算法來實現這個目的 array.prototype.unique1 function return n array.prototype.unique2 function r n為hash表,r為臨時陣列 for var i 0 i this.length i 遍歷當前陣列 retu...