方法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
}