【问题标题】:Maintain the duplicates in the sum of array integers保持数组整数和中的重复项
【发布时间】:2022-10-13 17:47:19
【问题描述】:

我写了一个程序:

  1. 打印所有元素(或整数)的总和
  2. 打印新的元素数组

    代码应该做什么:

    该程序应给出总和四个最大的元素(或整数).实际上,我做对了,但是,小问题是,我想保留所有重复项(仍在四大元素)。这就是我的意思:

    取一组数字: [4,5,-2,3,1,2,6,6]

    最大的四个数字是:4,5,6,6.他们的总和是4+5+6+6=21

    代码在做什么(不好):

    而不是得到“6,6,5,4”如(如上所述),代码正在打印“6,5,4,3”总和为18.

    还,当只有四个元素[有或没有重复项]时,如[1,1,1,-5], 让它添加所有元素。你猜对了,所有元素的总和是-2

    如何命令程序打印必要的重复项以生成四个最大整数?

    这是我的代码...

    //var arr = Array(4, 5, -2, 3, 1, 2, 6, 6);
    var arr = Array(1, 1, 1, -5);
    
    var largArr = new Array();
    
    function largest() {
      largArr = Array(0, 0, 0, 0);
      largArr = Array(0, 0, 0, 0)
      for (i = 0; i < arr.length; i++) {
        if (arr[i] > largArr[0]) {
          largArr[0] = arr[i];
        }
      }
      for (i = 0; i < arr.length; i++) {
        for (i = 0; i < arr.length; i++) {
          if (arr[i] > largArr[1] && arr[i] < largArr[0]) {
            largArr[1] = arr[i];
          }
        }
        if (arr[i] > largArr[0]) {
          for (i = 0; i < arr.length; i++) {
            if (arr[i] > largArr[2] && arr[i] < largArr[1]) {
              largArr[2] = arr[i];
            }
          }
          largArr[0] = arr[i];
          for (i = 0; i < arr.length; i++) {
            if (arr[i] > largArr[3] && arr[i] < largArr[2]) {
              largArr[3] = arr[i];
            }
          }
        }
        console.log(largArr[0] + largArr[1] + largArr[2] + largArr[3]);
        console.log(largArr[0], largArr[1], largArr[2], largArr[3]);
    
        largest();

    我相信那里有一个天才可以帮助我解决这个问题:)

【问题讨论】:

    标签: javascript arrays integer


    【解决方案1】:

    如果您想要最大四个数字的总和,那么您可以轻松地使用sortslicereduce

    numbers.sort((a, b) => b - a).slice(0, 4).reduce((acc, curr) => acc + curr, 0)
    

    const numbers = [4, 5, -2, 3, 1, 2, 6, 6];
    
    const result = numbers
        .sort((a, b) => b - a)
        .slice(0, 4)
        .reduce((acc, curr) => acc + curr, 0);
      
    console.log(result);

    【讨论】:

      猜你喜欢
      • 2020-03-02
      • 2018-07-28
      • 2012-12-04
      • 2015-12-16
      • 2022-11-30
      • 2021-04-17
      • 2012-06-10
      • 2021-05-21
      • 2019-11-22
      相关资源
      最近更新 更多