JavaScript找数组中重复出现过的元素

xiaoxiao2021-02-27  257

function duplicates(arr) { var a = []; var b = []; var c = []; arr.sort(compare); for(var i=0;i<arr.length;i++){ if(a.indexOf(arr[i])== -1){ a.push(arr[i]);//arr数组去重后push到a中; b.push(i);//a中各元素在arr中第一次出现的位置(索引)push入b中; } } for(var j=1;j<b.length;j++){ if(b[j]-b[j-1]>1){//如果前一个元素的索引减去后一个元素的索引大于1; c.push(a[j-1]);//则表示该元素有重复,将该元素push入c; } } if(arr.length-1 != b[b.length-1]){//判断数组arr最后一项的索引是否等于b数组最后一项的索引 c.push(a[b.length]);//如果是,则把arr数组最后一项push到c中 } return c;//返回c数组 } function compare(value1,value2)//比较函数,传入sort()中,保证排序的正确性 { if(value1<value2){ return -1; }else if(value1>value2){ return 1; }else{ return 0; } } 当然使用别的方法可能会比这个方法更简单,但是呢,使用这个方法可以延伸为:输出数组中重复第N多
转载请注明原文地址: https://www.6miu.com/read-3642.html

最新回复(0)