多重数组降维的简单方法

Posted Amylee_style

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多重数组降维的简单方法相关的知识,希望对你有一定的参考价值。

  今天事情比较轻松,突然看到之前自己遇到的一个问题,就是多重数组的降维去重的做法,刚好最近在看javascript的设计模式这本书,里面介绍了很多面向对象和封装的设计,于是我便自己在编辑器上实践了一下,发现了一个新的方法就是Array.prototype.concat..apply([],arr),之前接触过这个方法的衍生是将伪数组变成真正的数组,就用到了Array.prototype.slice.call(arr)的方法,这里的call和apply都是指向对象的值的做法,在这里都可以组成新的数组,下面是我写的代码:

  

var list = [[1,2,3],[7,8],2,[4,[9]],[3,[6,[3,2]]]];
    var result;
    var isArray = function(data){
      for (var i = 0; i < data.length; i++) {
        if (data[i] instanceof Array) {
          return true;
        }
      }
    }
    var fuc = function(arr){
      return Array.prototype.concat.apply([],arr);
    }
    var arrFuc = function(array){
      if (isArray(array)) {
        arrFuc(fuc(array));
        return;
      }
      result = array;
    }
    arrFuc(list);
    console.log("result",result);

大概的用法是这样操作的,去重就是在最后得到值的基础上用sort方法等等。

以上是关于多重数组降维的简单方法的主要内容,如果未能解决你的问题,请参考以下文章

面试题:降维的必要性和目的是什么?

降维技术

PCA和LDA降维的比较

机器学习丨PCA降维的经典算法

[机器学习与scikit-learn-46]:特征工程-特征选择(降维)-2-常见的特征降维的方法大全

运用PCA进行降维的好处