JavaScript数组去掉重复数据总结
2018-03-10 10:25
176 查看
1.去掉指定的重复数据
var arr = [11,22,11,33,33,22,22,44,55]; function delRepeat( arr, val ){ for( var i=arr.length-1; i>=0; i-- ){ if( arr[i] === val ){ arr.splice(i, 1); } } return arr; } console.log(delRepeat(arr, 22));
2.去掉所有重复的数据
function delRepeat2( arr ){ // 定义一个新数组 var newArr = []; // 遍历传进来的数组 for(var i=0; i<arr.length; i++){ // 如果newArr里没有arr[i] if( newArr.indexOf(arr[i]) == -1 ){ // 把arr[i]传进新数组 newArr.push(arr[i]); } } // 返回新数组 return newArr; } var arr = [11,22,11,33,33,22,22,44,55]; console.log(delRepeat2(arr));
缺点:虽然只有一个for循环,但indexof()会从头检索数组,效率略低
3.先排序,后去掉所有重复的数据
// 思路: 先对数组进行排序,这样重复的值就会出现相邻位置 // 创建一个新数组 // 遍历arr,检查arr[i]与临时数组的最后一个值是否相同 // 如果不同,传进新数组, // 返回新数组 function delRepeat3( arr ){ //注意是ASCII码排序,目的是让重复的数据出现在相邻位置 //所以数值排序还是ASCII排序都ok arr.sort(); var newArr = []; for(var i=0; i<arr.length; i++){ if( arr[i] !== newArr[newArr.length-1] ){ newArr.push(arr[i]); } } return newArr; } var arr = [11,22,11,33,33,22,22,44,55]; console.log(delRepeat3(arr));
相关文章推荐
- 去掉数组中的重复数据
- Javascript基础知识盲点总结——数据类型和数组
- 去掉数组中重复的数据
- JavaScript几种数组去掉重复值的方法推荐
- javascript去掉数组重复项
- 使用javascript去掉数组中重复元素的方法
- 使用C#去掉10万级数组中重复的数据
- JavaScript去掉数组中的重复元素
- javascript数组去掉重复项
- JavaScript几种数组去掉重复值的方法
- javascript数组去除重复数据
- javascript数组去掉重复项
- JavaScript去掉数组中的重复元素
- 应用HashSet去掉数组的重复数据
- 使用C#去掉10万级数组中重复的数据
- java 数组去掉重复数据和排序
- JS数组去掉重复数据只保留一条的实现代码
- JavaScript几种数组去掉重复值的方法