// 数组去重的对象
var array = {
// 需要去重的数组
arrs : [1,2,3,2,3,4,3,5,6,4,5,7,54,34,44,54],
// 去重以后的新数组
newarrs : [],
// 1.双层循环+(开关思想||数组长度)
arr1 : function(){
this.newarrs = [];
for(var i = 0; i < this.arrs.length; i++){
var flag = true;
for(var j = i + 1; j < this.arrs.length; j++){
if(this.arrs[i] == this.arrs[j]){
flag = false;
break;
}
}
// 开关思想
flag && this.newarrs.push(this.arrs[i]);
// 数组长度思想
// j == this.arrs.length && this.newarrs.push(this.arrs[i]);
}
return this.newarrs;
},
// 2.双层循环+跳出当前循环直接进入下一次外层循环
arr2 : function(){
this.newarrs = [];
for(var i = 0; i < this.arrs.length; i++){
for(var j = i + 1; j < this.arrs.length; j++){
if(this.arrs[i] == this.arrs[j]){
i++;
j = i + 1;
}
}
this.newarrs.push(this.arrs[i]);
}
return this.newarrs;
},
// 3.双层循环+splice()(会修改原数组)
arr3 : function(){
for(var i = 0; i < this.arrs.length; i++){
for(var j = i + 1; j < this.arrs.length; j++){
if(this.arrs[i] == this.arrs[j]){
this.arrs.splice(j,1);
j--;
}
}
}
return this.arrs;
},
// 4.关联数组思想||对象思想
arr4 : function(){
this.newarrs = [];
for(var i = 0, obj = {}; i < this.arrs.length; i++){
if(!obj[this.arrs[i]]){
obj[this.arrs[i]] = true;
this.newarrs.push(this.arrs[i]);
}
}
return this.newarrs;
},
// 5.数组下标思想:indexOf()
arr5 : function(){
this.newarrs = [];
for(var i = 0; i < this.arrs.length; i++){
if(this.newarrs.indexOf(this.arrs[i]) === -1){
this.newarrs.push(this.arrs[i]);
}
}
return this.newarrs;
},
// 6.数组排序思想:sort()(会修改原数组)
arr6 : function(){
this.newarrs = [];
this.arrs.sort(function(a,b){
return a - b;
});
for(var i = 0; i < this.arrs.length; i++){
if(this.arrs[i] !== this.arrs[i+1]){
this.newarrs.push(this.arrs[i]);
}
}
return this.newarrs;
},
// es6
// includes() 方法用于判断字符串是否包含指定的子字符串。
// 如果找到匹配的字符串则返回 true,否则返回 false。 区分大小写
// string.includes(searchvalue, start)
es6Arr1 : function(){
this.newarrs = [];
for(var i = 0, obj = {}; i < this.arrs.length; i++){
if(!this.newarrs.includes(this.arrs[i])){
this.newarrs.push(this.arrs[i]);
}
}
return this.newarrs;
},
// Array.from() 将类数组装换为数组
// new Set() 去重
// 推荐方法
es6Arr2 : function(){
this.newarrs = [];
return Array.from(new Set(this.arrs));
}
}
// 原型链上书写数组去重
Array.prototype.aaa = function(){
// 书写数组去重即可
// 上面的方法都可以
}
数组去重常用方法(11种)
猜你喜欢
转载自blog.csdn.net/qq_45007419/article/details/103745180
今日推荐
周排行