小編給大家分享一下javascript數(shù)組如何去重復,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁設(shè)計師等,應(yīng)用各種網(wǎng)絡(luò)程序開發(fā)技術(shù)和網(wǎng)頁設(shè)計技術(shù)配合操作的協(xié)同工作。創(chuàng)新互聯(lián)公司專業(yè)提供成都網(wǎng)站建設(shè)、做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站制作(企業(yè)站、響應(yīng)式網(wǎng)站設(shè)計、電商門戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗的提升,我們力求做到極致!
javascript數(shù)組去重復的方法:1、利用“indexOf()”方法去除重復值;2、利用splice方法去除重復值;3、利用es6新增的集合Set去除重復值。
js數(shù)組中去除重復值的幾種方法
在日常開發(fā)中,我們可能會遇到將一個數(shù)組中里面的重復值去除,那么,我就將我自己所學習到的幾種方法分享出來
去除數(shù)組重復值方法:
1,利用indexOf()方法去除
思路:創(chuàng)建一個新數(shù)組,然后循環(huán)要去重的數(shù)組,然后用新數(shù)組去找要去重數(shù)組的值,如果找不到則使用.push添加到新數(shù)組,最后把新數(shù)組返回回去就行了
看不懂沒關(guān)系,上代碼就比較容易懂了
function fun(arr){ let newsArr = []; for (let i = 0; i < arr.length; i++) { if(newsArr.indexOf(arr[i]) === -1){ newsArr.push(arr[i]); } } return newsArr; }
2,利用splice方法去除
思路:這個方法有點模仿冒泡 倆層循環(huán),外層循環(huán)遍歷數(shù)組,內(nèi)層循環(huán)比較值,如果有相同, 則使用splice去除 然后返回處理完的數(shù)組即可
看不懂沒關(guān)系,上代碼就比較容易懂了
function fun(arr){ for (let i = 0; i < arr.length; i++) { for(let j = i+1; j < arr.length; j++){ if(arr[i]==arr[j]){ arr.splice(j,1); j--; } } } return arr; }
3,利用es6新增的集合Set去除
這里簡單介紹一下Set 集合,他跟數(shù)組很相識,但不是數(shù)組,是集合。他里面也有跟多方法,如增(add),刪(delete),查(has)等等。
他最重要的特點是:元素不能重復,即在Set集合不會出現(xiàn)相同的元素
Set去重方案1:
思路:因為Set集合里面不允許出現(xiàn)重復值,那我們就可以利用這個特點將我們的數(shù)組傳進去去重
首先new一個Set集合將要去重的數(shù)組作為參數(shù)傳進去,然后創(chuàng)建一個新數(shù)組,循環(huán)遍歷一下集合,將每個集合元素添加到新數(shù)組,最后將新數(shù)組返回即可
function fun(arr){ let s1 = new Set(arr); let arr2 = []; for(let item of s1){ arr2.push(item); } return arr2; }
Set去重方案2(使用數(shù)組方法Array.form()):
思路:Array.from(); 能夠把偽數(shù)組,集合轉(zhuǎn)成數(shù)組類型,這個方法配合上Set集合就剛好符合我們的需求
function fun(arr){ let s1 = new Set(arr); return Array.from(s1); }
Set去重方案3(使用es6展開運算符...):
思路:es6展開運算符能夠?qū)⒁粋€數(shù)組轉(zhuǎn)為用逗號分隔的參數(shù)序列
function fun(arr){ let s1 = new Set(arr); return [...s1]; }
以上是“javascript數(shù)組如何去重復”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!