方案一:对象模拟HashMap遍历去重
function duplicates(arr) {
var newArr=[]
var newArr1=[]
for(var i = 0;i<arr.length;i++){
for(var j=0;j<arr.length;j++){
if(i!=j){
if(arr[i]==arr[j]){
newArr.push(arr[i])
}
}
}
}
var json={}
for(var i = 0; i < newArr.length; i++){
if(!json[newArr[i]]){
newArr1.push(newArr[i]);
json[newArr[i]] = 1;
}
}
return newArr1
}
方案二:设置闸门flag,按条件去重
function duplicates(arr) {
var newArr=[]
var newArr1=[]
for(var i = 0;i<arr.length;i++){
for(var j=0;j<arr.length;j++){
if(i!=j){
if(arr[i]==arr[j]){
newArr.push(arr[i])
}
}
}
}
newArr1.push(newArr[0])
for(var i=0;i<newArr.length;i++){
var flag=0
for(var j=0;j<newArr1.length;j++){
if(newArr[i]==newArr1[j]) flag=1
}
if(flag==0) newArr1.push(newArr[i])
}
return newArr1
}
方案三:ES6,set集合去重
function duplicates(arr) {
let newArr = arr;
arr = [];
let set = new Set();
set(newArr);
for (let i of set){
arr.push(i);
}
return arr;
}