如何解决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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。