1、定義一個新陣列,并存放原陣列的第一個元素,然后將元素組一一和新陣列的元素對比,若不同則存放在新陣列中,
var arr = [1,2,3,1,2,5,4,5,2,1,2,3,1,2,1]; var arrr = [1]; for(var i=0;i<arr.length;i++){ var flag = false; for(var j=0;j<arrr.length;j++){ if (arr[i] == arrr[j]) { flag = true; break; } } if (!flag) { arrr.push(arr[i]); }
} console.log(arrr)
2、先將原陣列排序,在與相鄰的進行比較,如果不同則存入新陣列
// 將原陣列排序組成新的陣列 var arr = [1,2,3,1,2,5,4,5,2,1,2,3,1,2,1]; var arr2 = arr.sort(); var res = [arr2[0]]; for(var i=0;i<arr2.length;i++){ if (arr2[i] !== res[res.length-1]) { res.push(arr2[i]); } } console.log(res);
3、利用物件的屬性去重(推薦)
var arr = [1,2,3,1,2,5,4,5,2,1,2,3,1,2,1]; var res = []; var json = {}; for(var i=0;i<arr.length;i++){ if (!json[arr[i]]) { res.push(arr[i]); json[arr[i]] = 1; } } console.log(res);
4、利用下標查詢
var arr = [1,2,3,1,2,5,4,5,2,1,2,3,1,2,1]; var newArr = [arr[0]]; for(var i=1;i<arr.length;i++){ if (newArr.indexOf(arr[i]) == -1) { newArr.push(arr[i]); } } console.log(newArr)
5、利用ES6方法 - set去重
var arr = [1,2,3,1,2,5,4,5,2,1,2,3,1,2,1]; function fn(arr){ var s = new Set(arr); return Array.from(s); } console.log(fn(arr))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/178076.html
標籤:JavaScript
上一篇:【譯】JavaScript Source Maps淺析
下一篇:vue,element串列大資料卡頓問題,vue串列渲染慢,element表格渲染慢,表格渲染慢(卡),表格全選卡
