
//方法一:利用索引判断是否重复(使用了两次)
function duplicates(arr) {
var arr1 = [];
arr.forEach(function (ele) {
//判断原数组是否有重复数据
//判断结果数组是否已经具有该数据
if (arr.indexOf(ele) != arr.lastIndexOf(ele) && arr1.indexOf(ele) == -1){
arr1.push(ele);
}
});
return arr1;
}
//方法二:先判断数组中元素出现的次数,如果大于1并且结果数组之前无此元素,则将这个元素放到结果数组中
function dup(arr) {
var b = [];
var result = [];
for (var i= 0; i<arr.length; i++){
b[i] = arr.reduce(function (init,curr) {
//如果当前置等于item,该函数值加一
return curr === arr[i] ? init+1:init;
},0)
if (b[i] > 1 && result.indexOf(arr[i]) === -1){
result.push(arr[i]);
}
}
return result;
}
//方法三:先进行排序,然后判断排序之后的前一个数据是否等于后一个数据,如果是且结果数组没有这个元素,则将该元素加入结果数组
function duplicates1(arr) {
var a = arr.sort();
var result = [];
for (var i = 0;i<arr.length; i++){
if (arr[i]===arr[i+1] && result.indexOf(arr[i]) == -1){
result.push(arr[i]);
}
}
return result;
}