javascript 数组去重的几种方法
2015-07-31 10:43
495 查看
转载自:http://segmentfault.com/a/1190000003030068
方法一:利用indexOf判断新数组
underscore.js中实际上也是使用的类似的indexOf
方法二:利用indexOf判断旧数组
方法三:利用hash查找
这里利用了JS对象的实现就是hash表的特性
方法四:使用ES6 Set
方法一:利用indexOf判断新数组
underscore.js中实际上也是使用的类似的indexOf
//传入数组 function unique1(arr){ var tmpArr = []; for(var i=0; i<arr.length; i++){ //如果当前数组的第i已经保存进了临时数组,那么跳过, //否则把当前项push到临时数组里面 if(tmpArr.indexOf(arr[i]) == -1){ tmpArr.push(arr[i]); } } return tmpArr; }
方法二:利用indexOf判断旧数组
function unique2(arr){ var tmpArr = []; //结果数组 for(var i=0; i<arr.length; i++){ //如果当前数组的第i项在当前数组中第一次出现的位置不是i, //那么表示第i项是重复的,忽略掉。否则存入结果数组 if(arr.indexOf(arr[i]) == i){ tmpArr.push(arr[i]); } } return tmpArr; }
方法三:利用hash查找
这里利用了JS对象的实现就是hash表的特性
function unique3(arr){ var tmpArr = [], hash = {};//hash为hash表 for(var i=0;i<arr.length;i++){ if(!hash[arr[i]]){//如果hash表中没有当前项 hash[arr[i]] = true;//存入hash表 tmpArr.push(arr[i]);//存入临时数组 } } return tmpArr; }
方法四:使用ES6 Set
相关文章推荐
- JS正则表达式验证数字非常全
- JS正则表达式验证数字非常全
- Json简介与转换数据例子
- JavaScript中的三种弹出对话框
- Javascript中this关键字详解
- avascript处理JSON数据格式
- JMeter中对于Json数据的处理方法
- Json
- js关闭窗口
- Ajax上传实现根据服务器端返回数据进行js处理的方法
- JS 获取xsl 的值有反斜杠处理
- 02_js中接口的定义和使用
- js、URL传递含有中文参数时的乱码问题解决
- js 使用闭包封装数据
- 图片上传是否为空,以及类型的js验证
- 学习Javascript闭包(Closure)
- js倒计时代码 支持同一页面多个倒计时代码(转)
- js实时获取并显示当前时间的方法
- JavaScript实现瀑布流布局
- Javascript实现的Map集合工具类完整实例