数组去重

Array.prototype.unique3 = function(){
 var res = [];
 var json = {};
 for(var i = 0; i < this.length; i++){
  if(!json[this[i]]){//可以看出只要能拿到数组中的每一项问题就可以解决
   res.push(this[i]);
   json[this[i]] = 1;
  }
 }
 return res;
}

var arr = [112,112,34,'你好',112,112,34,'你好','str','str1'];
alert(arr.unique3());

那么如何拿到数组中的每一项呢?结合前面学习的es6各种for循环实质都是对数组的遍历

方法一 for-0f

var arr = [112,112,34,'你好',112,112,34,'你好','str','str1']
 var a=[]
 var b={}
 for(let i of arr){
    if (!b[i]) {
        b[i]=1
        a.push(i)
    }
 }
 alert(a)

forEach

var arr = [112,112,34,'你好',112,112,34,'你好','str','str1']
 var a=[]
 var b={}
 arr.forEach(i=>{
    if (!b[i]) {
        b[i]=1
        a.push(i)
    }
 })
 alert(a)

封装

forEach

var arr1 = [112,112,34,'你好',112,112,34,'你好','str','str1']
 var a=[]
 var b={}
 function aaa(arr){
    arr.forEach(i=>{
    if (!b[i]) {
        b[i]=1
        a.push(i)
    }
 })
 
return a
 }
alert(aaa(arr1))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容