【问题标题】:Javascript Select vector with the greatest number of items [closed]Javascript选择具有最多项目的向量[关闭]
【发布时间】:2021-01-17 05:03:54
【问题描述】:

我有 4 个数组:

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

var Class_A = [8, 11, 3, 9, 11, 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, 11, 3, 9, 11, 16, 54, 14, 5];
var Class_B = [2, 6, 12, 13, 20, 22, 33, 40, 50, 66, 77, 16, 7]; // Greatest length with 11 items,
var Class_C = [10, 14, 19];
var Class_D = [8, 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

【问题讨论】:

  • 请注意> 会产生一个布尔值。因此,您在第一个 > 之后比较布尔值。 ... Math.max() 期望其参数用逗号分隔:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
  • 不清楚您在寻找什么。您想要最长数组的长度、该数组的标识符还是数组本身?
  • var major = Class_B; 这行让我相信大卫想要最长的数组。

标签: javascript arrays max items


【解决方案1】:

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

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]

编辑:

或者,如果你想要 length 的最大数组:

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

【讨论】:

  • OP 想要“选择”最大长度的数组
  • 是的,这就是我的代码将给他的。
  • 是的,我明白了。我添加了评论来解释
  • 我的代码有问题吗,是/否?
  • 您“接受”了一个答案,然后想聊天?如何打开一个关于进一步问题的新线程/问题?您可以在此处提供链接
猜你喜欢
  • 1970-01-01
  • 2010-11-12
  • 2010-11-20
  • 1970-01-01
  • 2013-04-02
  • 1970-01-01
  • 2013-09-24
  • 2016-09-29
  • 2015-03-24
相关资源
最近更新 更多