教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

js數(shù)組去重,能用幾種方法實(shí)現(xiàn)?

更新時(shí)間:2023年09月18日10時(shí)53分 來源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

  在JavaScript中,有多種方法可以實(shí)現(xiàn)數(shù)組去重。以下是一些常用的方法,每種方法都附帶了詳細(xì)說明和示例代碼:

  1.使用Set(ES6):

  Set是ES6引入的數(shù)據(jù)結(jié)構(gòu),它只包含不重復(fù)的值??梢詫?shù)組轉(zhuǎn)換成Set,然后將其再次轉(zhuǎn)換回?cái)?shù)組,以去除重復(fù)項(xiàng)。

const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = Array.from(new Set(arr));
console.log(uniqueArr); // [1, 2, 3, 4, 5]

  2.使用filter()方法:

  使用Array的filter()方法,創(chuàng)建一個(gè)新數(shù)組,只保留第一次出現(xiàn)的每個(gè)元素。

const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = arr.filter((item, index, self) => self.indexOf(item) === index);
console.log(uniqueArr); // [1, 2, 3, 4, 5]

  3.使用reduce()方法:

  使用Array的reduce()方法,構(gòu)建一個(gè)新數(shù)組,只添加第一次出現(xiàn)的元素。

const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = arr.reduce((acc, current) => {
  if (!acc.includes(current)) {
    acc.push(current);
  }
  return acc;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]

  4.使用for循環(huán):

  使用for循環(huán)遍歷數(shù)組,將不重復(fù)的元素添加到新數(shù)組中。

const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = [];
for (let i = 0; i < arr.length; i++) {
  if (uniqueArr.indexOf(arr[i]) === -1) {
    uniqueArr.push(arr[i]);
  }
}
console.log(uniqueArr); // [1, 2, 3, 4, 5]

  5.使用Map(ES6):

  使用Map數(shù)據(jù)結(jié)構(gòu),遍歷數(shù)組并將元素作為鍵添加到Map中,然后將Map的鍵轉(zhuǎn)換回?cái)?shù)組。

const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = [...new Map(arr.map(item => [item, item])).values()];
console.log(uniqueArr); // [1, 2, 3, 4, 5]

  這些都是常見的數(shù)組去重方法,我們可以根據(jù)實(shí)際的需求選擇其中一個(gè)來使用。使用Set通常是最簡(jiǎn)單和最高效的方法,但它不會(huì)保留原始數(shù)組的順序。如果需要保留順序,可以使用其他方法。

0 分享到:
和我們?cè)诰€交談!