数组去重古和今

第一种,就是很普通的思维,比如,对于[1,2,2,3,3,3,4,4,4,4]这个数组来说,我们的思路就是,新建一个空的数组,然后对这个要处理的数组做遍历,遍历的每一项都会问一下新数组:“你有没有存过我啊?”,存过(新数组.indexOf(i)>0),那么就不再存了;没存过(新数组.indexOf(i)==-1),就存进去。所以就有了如下代码: var arr=[1,2,2,3,3,3,4,4,4,4]; (function (arr){ newArr=[]; for(let i=0;i<arr.length;i++){ if(newArr.indexOf(arr[i])===-1){ newArr.push(arr[i]); } }; })(arr); console.log(newArr); 在这里,我用一个自执行的匿名函数对数组做了个遍历,由于newArr是一个全局变量,在执行后不会被销毁,而是返回出去,最后打印的结果正是[1,2,3,4];
这是es5最朴实无华的写法,可以说是一种“古代的写法”吧,es6中有一种结构叫set,它天生就自带互异性,就是说肯定不会有重复的,看一段代码就知道了。
var s=new Set(arr);//结果为Set{1,2,3,4} var newArr=Array.from(s);//把这个类数组对象转为真正的数组 console.log(newArr); 版权声明:除特别注明外,本站所有文章均为田珊珊个人博客原创 转载请注明:出处来自田珊珊个人博客 » 数组去重古和今
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注
  • 潇寒说道:
    使用sort和reduce配合使用也可以去重。
  • U乐娱乐注册