function duplicates(arr) {
var result = [];
arr.forEach(function(elem){
if(arr.indexOf(elem) !=arr.lastIndexOf(elem) && result.indexOf(elem) == -1){
result.push(elem);
}
});
return result;
} #春招# #网易# #网易雷火2020春招# #网易雷火实习# function duplicates(arr) { let arr2 = []; for (let i = arr.length - 1; i >= 0; i--) { let element = arr[i]; if ([...arr.slice(0, i)].includes(element) ) { console.log(element); arr2.push(element); } } return [...new Set(arr2)]; }
function duplicates(arr) {
const ret = new Set(), aset = new Set()
for(let x of arr){
if(aset.has(x))
ret.add(x)
aset.add(x)
}
return Array.from(ret.values())
} function duplicates(arr) {
var res = [];
arr.forEach( (item, idx) => {
// 从arr后一个开始找是否还有重复,以及在res中是否记录
if(arr.includes(item, idx+1) && !res.includes(item)) {
res.push(item);
}
});
// 先获取元素再排序
return res.sort();
}
function duplicates(arr) {
const norepeat = new Set(arr)
return Array.from(norepeat).filter(item => {
return arr.indexOf(item) !== arr.lastIndexOf(item)
})
} function duplicates(arr) {
//思路:第一个for先把有重复的元素放入temp,第二个for再对temp去重,最后对temp排序
let temp = []
for(let i=0;i<arr.length;++i){
for(let j=i+1;j<arr.length;++j){
if(arr[i]===arr[j]){
temp.push(arr[i])
}
}
}
for(let a=0;a<temp.length;++a){
for(let b=a+1;b<temp.length;++b){
if(temp[a]===temp[b]){
temp.splice(b,1)
b=b-1
}
}
}
temp=temp.sort()
return temp
}
let arr=[1, 2, 4, 4, 3, 3, 1, 5, 3]
duplicates(arr) //[1,3,4] function duplicates(arr) {
return arr.filter((e,i) =>
arr.lastIndexOf(e) != i && i == arr.indexOf(e)
).sort();
} function duplicates(arr) {
arr1 = arr.slice(0);
a = Math.max.apply(Math,arr1);
var arr2 = [];
for (let i = 0; i < a; i++){
count = 0;
for (let j = 0; j < arr1.length; j++){
if (i == arr1[j]){
count++;
}
}
if (count >= 2){
arr2.push(i);
}
}
return arr2;
} /*************forEach************/
function duplicates(arr){
var dupnum=[];
arr.forEach(function(el){
if(arr.indexOf(el)!=arr.lastIndexOf(el) && dupnum.indexOf(el)==-1){
dupnum.push(el);
}
});
return dupnum;
}
/**********复杂想法************/
function duplicates(arr){
var tmp=[];//筛去重复多余项
var num=[];//存放重复项
var tmpArr = arr.map(function(el){
if(tmp.indexOf(el)==-1){
tmp.push(el);//如果没出现过就保存到这个数组,初始数组去除重复的部分
//console.log(el);
}else{
if(tmp.indexOf(el)!== -1 && tmp.length!=0){//如果该元素再次出现,则该元素属于重复项
if(num.indexOf(el)==-1) {//把重复的那个数值放到num中并返回该数值,这样就还能保证不会重复返回相同的数值
num.push(el);
return el;
}
}
}
});
return tmpArr.filter(function(el,index,a){
if(el !=undefined) return el;
});
} function duplicates(arr) {
let obj = {},
resultArr = []
for (let i = 0, len = arr.length; i < len; i++) {
if (obj[arr[i]] === undefined) {
obj[arr[i]] = 1
} else {
obj[arr[i]]++
}
}
for (let item in obj) {
if (obj.hasOwnProperty(item) && obj[item] > 1) {
resultArr.push(item)
}
}
return resultArr
}
function duplicates(arr) { //声明两个数组,a数组用来存放结果,b数组用来存放arr中每个元素的个数 var a = [],b = []; //遍历arr,如果以arr中元素为下标的的b元素已存在,则该b元素加1,否则设置为1 for(var i = 0; i < arr.length; i++){ if(!b[arr[i]]){ b[arr[i]] = 1; continue; } b[arr[i]]++; } //遍历b数组,将其中元素值大于1的元素下标存入a数组中 for(var i = 0; i < b.length; i++){ if(b[i] > 1){ a.push(i); } } return a; }