Javascript选择项目数最多的向量

问题描述

我有 4 个数组:

注意:数组长度在任何会话中都是不同的

var Class_A = [8,11,3,9,16,16];
var Class_B = [2,6,12,13,20,22,33,40,50,66,77]; // Greatest length with 11 items,var Class_C = [10,14,19];
var Class_D = [8,2];

我需要选择项目数最多的数组,(Class_B)

我的期望是:

var major = number major of array.length (in this case Class_B);

我的代码:

var major = max(Class_A.length > Class_B.length > Class_C.length > Class_D.length);

编辑 一个非正统的解决方案,来自新手,但它有效。

var Class_A = [8,54,5];
var Class_B = [2,77,7]; // Greatest length with 11 items,2];

var Classes = [];
                    Classes.push(Class_A.length) ;
                    Classes.push(Class_B.length) ;
                    Classes.push(Class_C.length) ;
                    Classes.push(Class_D.length) ;

                console.log("Lenght of 4 arrays>"+Classes);
                
                Classes.sort(function(a,b) { // order by major number
                    return a - b;
                });
        
                Classes.reverse(); // reverse array
        
                console.log("Total>"+Classes); // print sort by major number

                console.log("Major>"+Classes[0]); // Works => the magic number that I need

解决方法

将所有数组放在一个数组中。

classes = [Class_A,Class_B,Class_C,Class_D];

然后,得到最大的:

classes.reduce((acc,curr) => curr.length > acc.length ? curr : acc);
// => [2,6,12,13,20,22,33,40,50,66,77]

编辑:

或者,如果你想要最大数组的长度

classes.reduce((acc,curr) => curr.length > acc ? curr.length : acc,0);
// => 11

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...