這篇文章主要介紹了JS數(shù)組去重常用方法有哪些,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
具體如下:
先對(duì)瀏覽器Array對(duì)象進(jìn)行支持indexOf和forEach的polyfill
Array.prototype.indexOf = Array.prototype.indexOf || function(item) { for (var i = 0, j = this.length; i < j; i++) { if (this[i] === item) { return i; } } return -1; } Array.prototype.forEach = Array.prototype.forEach || function(callback, thisArg) { if (!callback || typeof callback !== 'function') return; for (var i = 0, j = this.length; i < j; i++) { callback.call(thisArg, this[i], i, this); } }
方法一:遍歷數(shù)組,建立新數(shù)組,利用indexOf判斷是否存在于新數(shù)組中,不存在則push到新數(shù)組,最后返回新數(shù)組
function removeDuplicatedItem(ar) { var ret = []; for (var i = 0, j = ar.length; i < j; i++) { if (ret.indexOf(ar[i]) === -1) { ret.push(ar[i]); } } return ret; }
方法二:遍歷數(shù)組,利用object對(duì)象保存數(shù)組值,判斷數(shù)組值是否已經(jīng)保存在object中,未保存則push到新數(shù)組并用object[arrayItem]=1的方式記錄保存
function removeDuplicatedItem2(ar) { var tmp = {}, ret = []; for (var i = 0, j = ar.length; i < j; i++) { if (!tmp[ar[i]]) { tmp[ar[i]] = 1; ret.push(ar[i]); } } return ret; }
方法三:數(shù)組下標(biāo)判斷法, 遍歷數(shù)組,利用indexOf判斷元素的值是否與當(dāng)前索引相等,如相等則加入
function removeDuplicatedItem3(ar) { var ret = []; ar.forEach(function(e, i, ar) { if (ar.indexOf(e) === i) { ret.push(e); } }); return ret; }
方法四:數(shù)組先排序, 然后比較倆數(shù)組一頭一尾進(jìn)行去重
function removeDuplicatedItem4(ar) { var ret = [], end; ar.sort(); end = ar[0]; ret.push(ar[0]); for (var i = 1; i < ar.length; i++) { if (ar[i] != end) { ret.push(ar[i]); end = ar[i]; } } return ret; }
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“JS數(shù)組去重常用方法有哪些”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!
當(dāng)前題目:JS數(shù)組去重常用方法有哪些-創(chuàng)新互聯(lián)
文章地址:http://chinadenli.net/article46/cdjhhg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、商城網(wǎng)站、關(guān)鍵詞優(yōu)化、網(wǎng)站改版、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容