一:利用ES6中的Set去重
<script>
//注:Set为ES6新增的一个对象,允许存储任何类型(原始值或引用值)的唯一值
let arr = [1,0,0,2,9,8,3,1];
function unique(arr) {
return Array.from(new Set(arr))
}
console.log(unique(arr)); // [1,0,2,9,8,3]
console.log(...new Set(arr)); // [1,0,2,9,8,3]
</script>
二:使用双重for循环,再利用数组splice方法去重(ES5)
var arr = [1, 5, 6, 0, 7, 3, 0, 5, 9,5,5];
function unique(arr) {
for (var i = 0, len = arr.length; i < len; i++) {
for (var j = i + 1, len = arr.length; j < len; j++) {
if (arr[i] === arr[j]) {
arr.splice(j, 1);
j--; // 每删除一个数j的值就减1
}
}
return arr;
}
console.log(unique(arr)); // 1, 5, 6, 0, 7, 3, 9
三:利用数组的indexOf方法去重
var arr =[1,-5,-4,0,-4,7,7,3];
function unique(arr){
var arr1 = []; // 新建一个数组来存放arr中的值
for(var i=0,len=arr.length;i<len;i++){
if(arr1.indexOf(arr[i]) === -1){
arr1.push(arr[i]);
}
}
return arr1;
}
console.log(unique(arr)); // 1, -5, -4, 0, 7, 3
// 任意创建一个数组 和一个空数组
var arr = [1,2,3,4,5,6,4,54,5,4,54,54,54,54,1,21,2,132]
var xin = []
// 循环我们的数组 使用indexOf判断我们的空数组中是否存在当前数据 不存在就添加
for(var i = 0; i < arr.length; i++ ){
if(xin.indexOf(arr[i]) == -1){
xin.push(arr[i])
}
}
console.log(xin)
四、利用数组的sort方法去重(相邻元素对比法)
var arr = [5,7,1,8,1,8,3,4,9,7];
function unique( arr ){
arr = arr.sort();
console.log(arr);
var arr1 = [arr[0]];
for(var i=1,len=arr.length;i<len;i++){
if(arr[i] !== arr[i-1]){
arr1.push(arr[i]);
}
}
return arr1;
}
console.log(unique(arr))l; // 1, 1, 3, 4, 5, 7, 7, 8, 8, 9