方法1:
function duplicates(arr) {
//key-value,数组元素作为key,数组索引作为value,统计出现次数,再筛选次数大于1的的数组输出
var obj = {}
arr.forEach(function(item,index){
if(!obj[item]){
obj[item]=1
}else{
obj[item]++
}
})
//遍历对象,筛选出大于1的键值,然后将键值输出到数组中
var newArr = []
for(var key in obj){
if(obj.hasOwnProperty(key)&&obj[key]>1){
newArr.push(key)
}
}
return newArr
}
方法2
function duplicates(arr) {
//对数组进行排序,统计每个元素的最大索引值和最小索引值,如果两者不相等,则说明重复,输出此元素
var newArr = []
arr.sort(function(a,b){return a-b})
//遍历数组,将元素获取到的最后索引作为新的循环初始值
for(var i = 0; i<arr.length; i=arr.lastIndexOf(arr[i])+1){
index = arr.indexOf(arr[i])
lastIndex = arr.lastIndexOf(arr[i])
if(index!=lastIndex){
newArr.push(arr[i])
}
}
return newArr
}

京公网安备 11010502036488号