日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
js數(shù)組去重的方法有哪些

JavaScript數(shù)組去重的方法有很多,下面我將介紹幾種常見的方法。

1、利用Set數(shù)據(jù)結(jié)構(gòu)去重

Set是一種特殊類型的集合,它只允許唯一的值存在,我們可以將數(shù)組轉(zhuǎn)換為Set,然后再轉(zhuǎn)換回?cái)?shù)組,這樣就可以實(shí)現(xiàn)去重的目的,這種方法簡單快捷,但是需要注意的是,Set會(huì)改變?cè)瓟?shù)組的順序。

function unique(arr) {
  return Array.from(new Set(arr));
}

2、利用雙重循環(huán)去重

雙重循環(huán)去重的原理是,遍歷數(shù)組,對(duì)于每一個(gè)元素,再遍歷它后面的所有元素,如果發(fā)現(xiàn)有相同的元素,就將其刪除,這種方法比較直觀,但是時(shí)間復(fù)雜度較高,不適用于大數(shù)據(jù)量的處理。

function unique(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、利用indexOf方法去重

indexOf方法可以返回一個(gè)元素在數(shù)組中第一次出現(xiàn)的索引,如果沒有出現(xiàn)則返回-1,我們可以遍歷數(shù)組,對(duì)于每一個(gè)元素,如果它不在新數(shù)組中,就將其添加到新數(shù)組中,這種方法簡單易懂,但是需要注意的是,indexOf方法本身的時(shí)間復(fù)雜度較高,不適用于大數(shù)據(jù)量的處理。

function unique(arr) {
  let result = [];
  for (let i = 0; i < arr.length; i++) {
    if (result.indexOf(arr[i]) === -1) {
      result.push(arr[i]);
    }
  }
  return result;
}

4、利用filter方法去重

filter方法可以創(chuàng)建一個(gè)新數(shù)組,其包含通過測(cè)試的所有元素,我們可以利用這一點(diǎn),遍歷數(shù)組,對(duì)于每一個(gè)元素,如果它不在新數(shù)組中,就將其添加到新數(shù)組中,這種方法簡潔高效,但是需要注意的是,filter方法本身的時(shí)間復(fù)雜度較高,不適用于大數(shù)據(jù)量的處理。

function unique(arr) {
  let result = [];
  for (let i = 0; i < arr.length; i++) {
    if (result.indexOf(arr[i]) === -1) {
      result.push(arr[i]);
    }
  }
  return result;
}

以上就是JavaScript數(shù)組去重的幾種常見方法,每種方法都有其優(yōu)點(diǎn)和缺點(diǎn),具體使用哪種方法,需要根據(jù)實(shí)際情況來決定。

相關(guān)問題與解答

問題1:JavaScript數(shù)組去重后,原數(shù)組會(huì)被改變嗎?

答案:這取決于你使用的去重方法,如果你使用的是Set數(shù)據(jù)結(jié)構(gòu)去重或者雙重循環(huán)去重,那么原數(shù)組的順序會(huì)被改變,如果你使用的是indexOf方法或者filter方法去重,那么原數(shù)組的順序不會(huì)改變。

問題2:JavaScript數(shù)組去重的效率如何?

答案:這取決于你使用的去重方法,Set數(shù)據(jù)結(jié)構(gòu)去重的效率最高,因?yàn)樗腔贖ash算法的,雙重循環(huán)去重的效率最低,因?yàn)樗臅r(shí)間復(fù)雜度是O(n^2),indexOf方法和filter方法的效率介于兩者之間。


分享標(biāo)題:js數(shù)組去重的方法有哪些
當(dāng)前URL:http://www.dlmjj.cn/article/copipgc.html