如何找到三个最大的数字,在一系列?

0

的问题

你好我想找到三个最大的数字阵列的顺序。 我很困惑我是如何应实现的最后一逻辑,我必须转移的指标结果列的基础上,如果目前的人数在结果列为大于或小于环阵列项目。

    function findThreeLargestNumbers(array) {
  let result = [null, null, null];
  for (let i = 0; i < array.length; i++) {
    if (!result[2] || result[i] > result[2]) {
      for (let j = 0; i <= 2; i++) {
        if (j === 2) {
          result[j] = array[i]
        } else {
          result[j] = array[i + 1]
        }
      }
    }
  }
  return result
}


console.log(findThreeLargestNumbers([141, 1, 17, -7, -17, -27, 18, 541, 8, 7, 7]));
algorithm javascript
2021-11-24 00:43:28
1

最好的答案

2

你可以简单地 sort 它在上升顺序和使用 slice 得到最后 3 元素如:

1) 当你想要的结果在过去3个最大的在上升了 [18, 141, 541]

function findThreeLargestNumbers(array) {
  return [...array].sort((a, b) => a - b).slice(-3);
}

// [18, 141, 541]
console.log(findThreeLargestNumbers([141, 1, 17, -7, -17, -27, 18, 541, 8, 7, 7]));

2) 当你想要的结果在过去3个最大的顺序 [541, 141, 18]

function findThreeLargestNumbers(array) {
  return [...array].sort((a, b) => b - a).slice(0, 3);
}

console.log(findThreeLargestNumbers([141, 1, 17, -7, -17, -27, 18, 541, 8, 7, 7]));

2021-11-24 00:50:39

甚至更好的克隆阵列,并获得最近3号。 顺便说一句谢谢你的编辑
decpk

克隆的阵你会用传播运营商或循环,并推动空阵?
dev

@dev ... 不是操作者传播的语法。 我会去 spread 语法...
decpk

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................