新聞中心
這篇文章主要為大家展示了“javascript數(shù)組去重如何實(shí)現(xiàn)”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“javascript數(shù)組去重如何實(shí)現(xiàn)”這篇文章吧。
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的新會網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
方法:1、利用“[...new Set(arr)]”語句;2、利用“Array.from(new Set(arr))”語句;3、利用filter和indexOf函數(shù);4、利用雙重for循環(huán),檢查值是否重復(fù),如果有重復(fù)就使用push()刪除。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
方法1:[…new Set(arr)]
const arr = [1, 2, 3, 2, 3]; [...new Set(arr)]; // [1, 2, 3]
方法2:Array.from(new Set(arr))
const arr = [1, 2, 3, 2, 3]; Array.from(new Set(arr)); // [1, 2, 3]
由于 Set 中的元素是唯一的,無論是原始值或者是對象引用,所以可以通過將數(shù)組轉(zhuǎn)換成 Set 對象來實(shí)現(xiàn)去重
Array.from方法可以將 Set 對象轉(zhuǎn)換成數(shù)組。
方法3:利用filter+ indexOf
function unique(arr) { return arr.filter(function(item, index, arr) { //當(dāng)前元素,在原始數(shù)組中的第一個(gè)索引==當(dāng)前索引值,否則返回當(dāng)前元素 return arr.indexOf(item, 0) === index; }); } var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}]; console.log(unique(arr)) //[1, "true", true, 15, false, undefined, null, "NaN", 0, "a", {…}, {…}]
方法4:雙重 for 循環(huán)
最容易理解的方法,外層循環(huán)遍歷元素,內(nèi)層循環(huán)檢查是否重復(fù)
當(dāng)有重復(fù)值的時(shí)候,可以使用 push(),也可以使用 splice()
function distinct(a, b) { let arr = a.concat(b); for (let i=0, len=arr.length; i但這種方法占用的內(nèi)存較高,效率也是最低的
方法5:for...of + includes()
雙重for循環(huán)的升級版,外層用 for...of 語句替換 for 循環(huán),把內(nèi)層循環(huán)改為 includes()
先創(chuàng)建一個(gè)空數(shù)組,當(dāng) includes() 返回 false 的時(shí)候,就將該元素 push 到空數(shù)組中
類似的,還可以用 indexOf() 來替代 includes()
function distinct(a, b) { let arr = a.concat(b) let result = [] for (let i of arr) { !result.includes(i) && result.push(i) } return result }
以上是“javascript數(shù)組去重如何實(shí)現(xiàn)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
分享題目:javascript數(shù)組去重如何實(shí)現(xiàn)
網(wǎng)頁URL:http://www.ef60e0e.cn/article/jjgjsg.html