JavaScript數組是一種存儲多個數據的序列結構,經常會出現需要去除數組中重復元素的需求,本文就介紹幾種常用的去除數組中重復元素的方法。
第一種方法是使用ES6中的Set對象。Set是一種集合,擁有去重的功能。我們可以將數組轉為Set對象,再將Set對象轉為數組,這樣就實現了去重。
let arr = [1, 2, 3, 1, 2, 3]; let set = new Set(arr); let newArr = Array.from(set); console.log(newArr); // [1, 2, 3]
第二種方法是使用雙重循環進行遍歷。比較每個元素與剩下的元素是否相等,如果相等則刪除該元素。
let arr = [1, 2, 3, 1, 2, 3]; for (let i = 0; i< arr.length; i++) { for (let j = i + 1; j< arr.length; j++) { if (arr[j] === arr[i]) { arr.splice(j, 1); j--; } } } console.log(arr); // [1, 2, 3]
第三種方法是使用indexOf方法。順序遍歷數組,將當前元素與數組中其它元素比較,如果元素的索引位置與當前索引位置不相等,則說明該元素重復。
let arr = [1, 2, 3, 1, 2, 3]; let newArr = []; for (let i = 0; i< arr.length; i++) { if (arr.indexOf(arr[i]) === i) { newArr.push(arr[i]); } } console.log(newArr); // [1, 2, 3]
第四種方法是使用reduce方法。遍歷數組,將每個元素與已存在的元素比較,只有不存在才會加入新數組。
let arr = [1, 2, 3, 1, 2, 3]; let newArr = arr.reduce(function (prev, cur) { if (prev.indexOf(cur) === -1) { prev.push(cur); } return prev; }, []); console.log(newArr); // [1, 2, 3]
第五種方法是使用filter方法。遍歷數組,通過比較當前元素與其索引位置的值來判斷是否重復。重復的元素將被過濾掉。
let arr = [1, 2, 3, 1, 2, 3]; let newArr = arr.filter(function (item, index, self) { return self.indexOf(item) === index; }); console.log(newArr); // [1, 2, 3]
這幾種方法都是比較常用的去除JavaScript數組中重復元素的方法,開發者可以根據需求選擇合適的方法進行使用。