繁体   English   中英

查找二维数组中每一列的众数 - JavaScript

[英]Finding the mode of each column in a two-dimensional array - JavaScript

不是问题,只要有人需要就把它放在那里。 (让我很头疼)

下面的脚本可以将任意数量的第二层 arrays 的二维数组作为“myArray”,并在原始二维数组的每一列中创建最频繁元素(无论类型如何)的单个数组。

myArray = myArray[0]
  .map((_, col) => myArray.map((row) => row[col]))
  .map((array) =>
    array.reduce(
      (a, b, i, arr) =>
        arr.filter((v) => v === a).length >= arr.filter((v) => v === b).length
          ? a
          : b,
      null
    )
  );

它的作用:下面的代码将采用任何二维数组“myArray”并返回一个一维数组,其中包含原始二维数组每一列的模式。

工作原理:输入(二维数组)被转置,结果数组在每一行中搜索最常见的元素。 然后将其缩减为然后展平(缩减)并重新转置为一维数组,其中包含原始数组每一列的最常见元素。

 myArray = [ [1, 2, 3, 4, 5], [1, 2, 3, 4, 7], [1, 3, 3, 6, 7], [1, 5, 3, 4, 7], [1, 6, 3, 4, 7], [1, 7, 3, 8, 5], ]; myArray = myArray[0].map((_, col) => myArray.map((row) => row[col])).map((array) => array.reduce( (a, b, i, arr) => arr.filter((v) => v === a).length >= arr.filter((v) => v === b).length? a: b, null ) ); console.log(myArray);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM