js 寻找数组中的重复元素
2017-08-01 17:17
169 查看
题目:
找出数组 arr 中重复出现过的元素思路一
利用indexOf,如果在数组中indexOf存在,则返回值不为-1,否则为-1每次截取前i个元素形成newArr,判断arr【i】是否在newArr中出现过,并且在要返回的数组a中没出现过,这时就把次元素放到a中。
代码
function duplicates1(arr){ //利用indexOf,如果在数组中indexOf存在,则返回值不为-1,否则为-1 var a = []; for(var i=1;i<arr.length;i++){ var newArr = arr.slice(0,i); if(newArr.indexOf(arr[i])!==-1&&a.indexOf(arr[i])===-1){ a.push(arr[i]); } } return a.sort(); }
思路二
利用indexOf和lastIndexOf是否相等,判断元素是否重复。如果相等,则说明元素只出现过1次,如果不相等,则说明出现过多次。function duplicates2(arr) { var result = []; arr.forEach(function(elem){ if(arr.indexOf(elem) !=arr.lastIndexOf(elem) && result.indexOf(elem) == -1){ result.push(elem); } }); return result; }
思路三
把每个元素出现的次数记录到一个对象中。找到次数大于1的就是重复的。这个思路也可以,解决统计重复元素出现次数的问题。function duplicates(arr) { var len = arr.length; arr.sort(); var b={};var a = []; var temp=arr[0];b[temp]=1; for(var i=1;i<len;i++){ if(temp===arr[i]){ b[temp]+=1; }else{ temp=arr[i]; b[temp]=1; } } for(var i in b){ if(b[i]>1) a.push(i); } return a; }
相关文章推荐
- js获取数组任意个不重复的随机数组元素 原创
- js比较字符数组元素是否重复
- JS 之 查找数组中重复的元素
- js 处理数组重复元素示例代码
- js 高效去除数组重复元素
- js 判断数组是否有重复元素的几种方式
- js去除数组中的重复元素的好方法
- JS取出数组中重复的元素
- js去除数组中重复元素
- js-一种去掉数组中重复元素的方法
- js 处理数组重复元素示例代码
- js去除数组的重复元素和去除数组中相邻的重复元素
- js中怎样验证数组中的元素是否重复
- JS 去除数组中重复的元素
- JS 清除字符串数组中,重复元素
- 【实践】js实现随机不重复抽取数组中元素
- js 处理数组重复元素
- JS数组去重复元素
- Perl寻找去除数组中重复元素
- JS找出数组 arr 中重复出现过的元素