无码人妻精一区二区三区,eeuss影院www在线观看,无码精品久久久久久人妻中字,日韩av高清在线看片

推薦新聞
數(shù)組去重的六種常用方式
發(fā)布者:深藍(lán)互聯(lián)
發(fā)布時(shí)間:2024-09-18
點(diǎn)擊:次
以下是數(shù)組去重的六種常用方式:
一、使用 ES6 的 Set 數(shù)據(jù)結(jié)構(gòu)
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = Array.from(new Set(arr));
console.log(uniqueArr); // [1, 2, 3, 4, 5]

Set 數(shù)據(jù)結(jié)構(gòu)不允許有重復(fù)的值,通過(guò)將數(shù)組轉(zhuǎn)換為 Set 再轉(zhuǎn)換回?cái)?shù)組,可以快速去除重復(fù)項(xiàng)。
二、利用對(duì)象屬性去重
const arr = [1, 2, 2, 3, 4, 4, 5];
const obj = {};
const uniqueArr = [];
for (let i = 0; i < arr.length; i++) {
  if (!obj[arr[i]]) {
    obj[arr[i]] = true;
    uniqueArr.push(arr[i]);
  }
}
console.log(uniqueArr); // [1, 2, 3, 4, 5]

遍歷數(shù)組,將數(shù)組元素作為對(duì)象的屬性,如果該屬性不存在,則將元素添加到新數(shù)組中,并在對(duì)象中標(biāo)記該屬性為已存在。
三、雙層循環(huán)去重
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = [];
for (let i = 0; i < arr.length; i++) {
  let isDuplicate = false;
  for (let j = 0; j < uniqueArr.length; j++) {
    if (arr[i] === uniqueArr[j]) {
      isDuplicate = true;
      break;
    }
  }
  if (!isDuplicate) {
    uniqueArr.push(arr[i]);
  }
}
console.log(uniqueArr); // [1, 2, 3, 4, 5]

外層循環(huán)遍歷原數(shù)組,內(nèi)層循環(huán)遍歷去重后的新數(shù)組,檢查當(dāng)前元素是否已經(jīng)在新數(shù)組中,如果不在則添加到新數(shù)組中。
四、排序后相鄰比較去重
const arr = [1, 2, 2, 3, 4, 4, 5];
const sortedArr = arr.sort((a, b) => a - b);
const uniqueArr = [sortedArr[0]];
for (let i = 1; i < sortedArr.length; i++) {
  if (sortedArr[i]!== sortedArr[i - 1]) {
    uniqueArr.push(sortedArr[i]);
  }
}
console.log(uniqueArr); // [1, 2, 3, 4, 5]

先對(duì)數(shù)組進(jìn)行排序,然后遍歷排序后的數(shù)組,比較相鄰元素是否相同,不同則添加到新數(shù)組中。
五、使用 filter 方法去重
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = arr.filter((value, index, self) => {
  return self.indexOf(value) === index;
});
console.log(uniqueArr); // [1, 2, 3, 4, 5]

filter 方法遍歷數(shù)組,對(duì)于每個(gè)元素,檢查它在原數(shù)組中的第一次出現(xiàn)的索引是否等于當(dāng)前索引,如果是則說(shuō)明該元素是唯一的,將其添加到新數(shù)組中。
六、使用 reduce 方法去重
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = arr.reduce((acc, cur) => {
  if (!acc.includes(cur)) {
    acc.push(cur);
  }
  return acc;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]

reduce 方法遍歷數(shù)組,對(duì)于每個(gè)元素,檢查新數(shù)組中是否已經(jīng)包含該元素,如果不包含則添加到新數(shù)組中。

 

關(guān)注深藍(lán)互聯(lián)公眾號(hào)
Copyright ? 2013-2025 深藍(lán)互聯(lián) 版權(quán)所有
友情鏈接: