利用for嵌套for,splice去重
双层循环,外层循环元素,内层循环时比较数据,当两个数据相同时,删去这个数据,以此类推,得到去重后的数组
var arr = [1,1,1,2,2,2,3,3,3,4,4,4,5,5,5];
for( i = 0; i <= arr.length-1; i++ ){
for( j = i+1; j <= arr.length-1; j++ ){
if( arr[i] == arr[j] ){
arr.splice(j,1);
j--;
}
}
}
console.log(arr);
利用indexOf去重
创建一个空数组,,将原始数值中的数值,向新的数组中写入,如果这个数值不存在于新的数组中,就执行写入,如果已经存在,就不写入
var arr = [ 1,1,1,2,2,2,3,3,3,4,4,4,5,5,5 ];
var newArr = [];
arr.forEach(function(val){
if( newArr.indexOf(val) === -1){
newArr.push(val)
}
})
console.log(newArr);
利用sort()去重
首先进行容错处理,判断输入的数据类型是否为数组。然后按照大小进行排序,创建一个空数组,遍历数组,相邻数据的进行判断,如果两个数据不相等,将这个值添加到新数组中
var arr = [2,3,1,1,5,5,1,3,3,4,2,2,4,4,5];
if (!Array.isArray(arr)) {
console.log('你输入的数据不是数组,请重新输入');
}
arr = arr.sort( function(a,b){ return a-b } );
var newArr = [ ];
for (var i = 0; i <= arr.length-1; i++) {
if (arr[i] !== arr[i - 1]) {
newArr.push(arr[i]);
}
}
console.log( newArr);