多维数组转一维数组,去重,排序(封装备忘)

263 阅读1分钟

多维数组转一维数组,去重,并排序

    let arr = [[1,2,3],4,9,7,1,2,[11,1,[3,4,[4,6,7]]],[3,4,5]]
      function flatten(arr,string='') { 
        // 将数组转化为一维数组
        // [].concat( ...arr.map(x => Array.isArray(x) ? flatten(x) : x) )
        // es6 提供了一个新的更简单的方法 —— flat,它接收一个参数 depth,代表展开嵌套数组的深度,默认是 1
          let arr1 = arr.flat(9)
          // 将数组去重 
          let noRepeat = [ ...new Set(arr1) ]
          // return noRepeat
          // 排序
          if(string == '大'){
            // a - b 为从小到大  b - a 为 从大到小
            console.log(noRepeat.sort(function(a, b){return b - a}));
            return noRepeat.sort(function(a, b){return b - a});
          }
          if(string == '小'){
            console.log(noRepeat.sort(function(a, b){return a - b}));
            return noRepeat.sort(function(a, b){return a - b});
          }
          console.log(noRepeat);
          return noRepeat
      }
      flatten(arr);

防止输入特殊字符

// 防止输入特殊字符
    replaceInput(event){
      this._timer=setTimeout(()=>{
        clearTimeout(this._timer)
        var value = event.target.value;
        //匹配数字的正则表达式
        var patt = /.*[0-9]{1,}.*/i;
        //匹配特殊字符的正则表达式
        var pattern = new RegExp("[`~!@#$^&*()-=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]");
        let _str=""
        for(let i=0,len=value.length;i<len;i++){
          _str+=value[i].replace(pattern,'').replace(patt,'')
        }
        // this.toBaADistributor.trueName = _str;
      },1)
    },

当findIndex怎么都不好用时(备忘)

this.fund_index = that.is_have_data.map(item => item.selected).indexOf("selected")