陣列 - 汰除重複的項目

  1. 1. 核心想法
  2. 2. 完整程式碼
1
2
3
4
this.arr = this.arr.filter((item: string, index: number, arr: string[]) => {
const firstIndex = arr.indexOf(item);
return index === firstIndex ? true : false;
});

核心想法

Array.indexOf() 會回傳 陣列中藥查詢的項目最先出現的 index 位置。

Array.filter() 會提供目前遍歷到的項目資料、目前項目的位置、陣列資料,如果該項目在陣列的位置,和 Array.indexOf() 回傳的位置不相同,就代表有重複。

完整程式碼

1
2
3
4
5
6
7
8
var arr = [ 1, 1, 2, 3, 3 , 3, 4, 5, 6 ];

arr = arr.filter((item, index, arr) => {
var firstIndex = arr.indexOf(item);
return index === firstIndex ? true : false;
});

console.log(arr);

JS Bin