var arr = [1,1,1,2,2,2,3,3,3,4,4,4,5,5,5]; for(let i = 0 ; i <= arr.length-1 ; i++){ for(let j = i+1 ; j <= arr.length-1 ; j++){ if(arr[i] === arr[j]){ arr.splice( j , 1 ); j--; } } }
二、数组数值排序,相邻两个单元比较
var arr = [1,2,3,4,5,1,2,3,4,5,1,2,3,4,5]; arr = arr.sort(function(a,b){return a-b}); for(let i = 0 ; i <= arr.length-1-1 ; i++){ if(arr[i] === arr[i+1]){ arr.splice(i+1 , 1); i--; } }
三、indexOf方法
判断要写入的数值,是否已经存在于新数组中
var arr = [1,2,3,4,5,1,2,3,4,5,1,2,3,4,5]; const newArr = []; for(let i = 0 ; i <= arr.length-1 ; i++){ if( newArr.indexOf(arr[i]) == -1 ){ newArr.push(arr[i]); } }
利用indexOf判断当前循环元素下标与原数组中下标是否一致,一致则添加到新数组中
var arr = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]; const newArr = []; for (let i = 0; i <= arr.length - 1; i++) { if (arr.indexOf(arr[i]) == i) { newArr.push(arr[i]); } }
四、利用对象中,不能存储相同的键名
var arr = [1,2,3,4,5,1,2,3,4,5,1,2,3,4,5]; const obj = {}; arr.forEach(function(val,key){ obj[val] = ‘随便‘; }); const newArr = []; for(let key in obj){ newArr.push(key); }
五、利用SET数据类型
var arr = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]; const set = new Set(arr); const newArr = [...set]; // const newArr = [...new Set(arr)];
原文:https://www.cnblogs.com/younghxp/p/12426263.html