js 数组去重的五种方法
2017-09-18 23:30
218 查看
// 去掉一个数组的重复元素,并返回的是新数组(这个有问题。这个的length会变,因此是错误的) function quChong(arr){ var newArr=arr; var temp={}; for(var i=0;i<=newArr.length;i++){ if(temp[newArr[i]]){ newArr.splice(i,1); console.log("索引:"+i); }else{ temp[newArr[i]]=1; } } console.log(newArr); }
// 去掉一个数组的重复元素(用对象存储是否存在过,问题是把“1”和1当做了同一个) function quChong(arr){ var newArr=[]; var temp={}; for(var i=0;i<arr.length;i++){ if(!temp[arr[i]]){ temp[arr[i]]=1; newArr.push(arr[i]); } } console.log(newArr); } // 去掉一个数组的重复元素(用indexof判断,没在newArr中出现过就是-1) function quChong1(arr){ var newArr=[]; for(var i=0;i<arr.length;i++){ if(newArr.indexOf(arr[i])===-1){ newArr.push(arr[i]); } } console.log(newArr); } //去掉一个数组的重复元素(用indexof判断,数字在arr中出现的索引是否和arr.indexOf索引一样,一样的话就是push,不一样就不push) function quChong2(arr){ var newArr=[]; arr.forEach(function(item,index,arr){ if(arr.indexOf(item)===index) newArr.push(item); }) return newArr; } //上一个的简化版 function quChong3(arr){ return arr.filter(function(item,index,arr){ return arr.indexOf(item)===index; }); }
//去重 ES6新方法 用set (Array.from是把new Set返回的字符串格式话成数组) function quChong4(arr){ return Array.from(new Set(arr)); }
相关文章推荐
- JS去除数组重复值的五种不同方法
- js数组的五种迭代方法及两种归并方法(推荐)
- js-数组去重(有五种方法)-包含数组扩展形式
- js 数组去重复项的五种方法比较
- 支持IE8及以下的,原生JS数组迭代的五种方法
- 五种js实现数组去重的方法
- js 数组去重复项的五种方法比较
- js数组去重的三种常用方法总结
- JS数组方法汇总 array数组元素的添加和删除
- JS数组操作方法汇总
- js数组push方法使用注意
- js中数组的栈方法和队列方法
- JS提交对象数组到服务端的方法总结(C#实例)
- 数组方法解决JS字符串连接性能问题有争议
- JS快速构建数组方法
- js判断一个对象为数组的方法
- js数组、字符串常用方法和互相转换,==和===
- JS中数组重排序方法
- js中数组的使用方法
- js中合并两个数组的方法