[JavaScript基礎(chǔ)]數(shù)組去重常見的三種方式

// way one
let array = [1,2,3,4,5,4];
let array1 = [1,1,1,1,1,2,2,3];
// zepto源碼實(shí)現(xiàn)方式,簡單可比較元素
let newArray = array1.filter((element, index) => {
    return array1.indexOf(element) === index;
});

console.log(newArray);

// way two,簡單可排序元素
let array2 = [1,1,1,1,1,2,2,3];
let newArray2 = array2.sort();
for(let i = 1;i < newArray2.length;i++) {
  if(newArray2[i - 1] === newArray2[i]) {
    newArray2.splice(i, 1);
    i--;
  }
}

console.log(newArray2);

// way three
// 復(fù)雜對(duì)象
// 1.簡單去重 + 對(duì)象深度復(fù)制克隆
let array3 = [1,1,1,1,1,2,2,3];
let newArray3 = array3.concat();
let currentVal;
let moveVal;
for(let i = 0;i < newArray3.length;i++) {
  let currentVal = newArray3[i];
  for(let j = i + 1;j < newArray3.length;j++) {
    moveVal = newArray3[j];
    if(currentVal === moveVal) {
      newArray3.splice(j, 1);
      j--;
    }
  }
}

console.log(newArray3);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容