美文网首页
数组练习

数组练习

作者: 心存美好 | 来源:发表于2021-11-11 09:43 被阅读0次

    练习一封装函数 实现数组去重

    例如:输入deweightArr([1,4,6,3,4,6,2]); 返回[1,4,6,3,2]

    方法一从前往后查同一个值是否在两个索引中
    function deweightArr(arr){
      for(var i=0;i<arr.length;i++){
        var char = arr[i];
        if(arr.indexOf(char) !== arr.lastIndexOf(char)){
          arr.splice(i,1);
          i--;//防止跳过
        }
      }
      return arr
    }
    console.log(deweightArr([1,4,6,3,4,3,1]));
    
    方法二从后往前查同一个值是否在两个索引中
    function deweightArr(arr){
      var len =arr.length;
      for(var i= len - 1;i >= 0 ;i--){
        var char = arr[i];
        if(arr.indexOf(char) !== arr.lastIndexOf(char)){//下标不同表示至少有两个索引值相同
          arr.splice(i,1);
        }
      }
     return arr;
    }
    console.log(deweightArr([1,4,6,3,4,3,1]));
    
    方法三借助对象的属性是不重复的特点去重
    function deweightArr(arr){
      var obj={};
      for(var i=0;i<arr.length;i++){
        var char = arr[i];
        obj[arr[i]] =arr[i];
      }
      var newArr=[];
      for(var key in obj){
        newArr.push(obj[key])//数组是数字类型的,但对象属性是字符串类型,所以去重后也是字符串类型的。+key就是数字类型了。或者使用数组的值obj[key]
      }
     return newArr
    }
    console.log(deweightArr([1,4,6,3,4,3,1]));
    

    相关文章

      网友评论

          本文标题:数组练习

          本文链接:https://www.haomeiwen.com/subject/yqmwzltx.html