方法:1.利用map資料結構實作去重,將陣列的每一個元素當作key存到map中;2、利用es6中的set方法實作去重,語法為「Set(array) 」;3、利用forEach語句配合indexOf實現去重。
本文操作環境:Windows10系統、nodejs 12.19.0版、Dell G3電腦。
第一種 利用Map資料結構去重
創建一個空Map資料結構,遍歷需要去重複的陣列,把數組的每一個元素當作key存到Map。由於Map中不會出現相同的key值,所以最後得到的就是去重後的結果
function a(arr) { let map = new Map(); let array = new Array(); // 数组用于返回结果 for (let i = 0; i < arr.length; i++) { if (map.has(arr[i])) { // 如果有该key值 map.set(arr[i], true); } else { map.set(arr[i], false); // 如果没有该key值 array.push(arr[i]); } } return array; } var arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]; console.log(a(arr)) //[1,2,3,4,5]
第二種 使用ES6中的set是最簡單的去重方法
let arr2 = [1, 2, 3, 4, 5, 5, 4, 3]; let res = [...new Set(arr2)]; console.log(res);
第三種 forEach indexOf實作去重
var arr3 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]; var b = distinct(arr3); function distinct(arr) { result = [], len = arr3.length; //len=10; arr3.forEach(function (v, i, arr3) { var bool = arr3.indexOf(v, i + 1); //从传入参数的下一个索引值开始寻找是否存在重复 if (bool === -1) { result.push(v); } }) return result; }; console.log(b.toString()); //1,2,3,4,5
推薦學習:《nodejs影片教學》
以上是node數組去重的三種方法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!