簡體   English   中英

返回列表中的兩個最高值,在 Javascript

[英]Return Two Highest Values in List, in Javascript

我搞不懂這個,我為它寫了一段亂七八糟的代碼,現在我不知道如何修復它或下一步該做什么。

在此型中,您的工作是返回列表中兩個不同的最高值。 如果唯一值少於 2 個,則返回盡可能多的值。 結果也應該從最高到最低排序。

例子

[4, 10, 10, 9]  =>  [10, 9]
[1, 1, 1]  =>  [1]
[]  =>  []

來源https://www.codewars.com/kata/57ab3c09bb994429df000a4a/train/javascript

這是我的錯誤代碼

function twoHighest (arr) {
let max1 = Math.max(...arr);
  
var i = 0;
  while (i < arr.length) {
    if (arr[i] === max1) {
      arr.splice(i, 1);
    } else {
      ++i;
    }
  }
  var array2 = arr;
  var maxone = [max1];
  let max2 = [Math.max(...array2)];
  return maxone.concat(max2);
};

第 1 步: Array.filter的唯一數組

第 2 步:通過Array.sort按 DESC 排序

第 3 步:通過Array.slice獲取排序數組的前 2 個元素

 function twoHighest(arr) { return arr.filter((v, i, a) => a.indexOf(v) === i) // Unique array.sort((a, b) => b - a) // Sort by DESC.slice(0, 2); // Get first 2 element of sorted array }; const demoArray = [15, 20, 20, 17]; const result = twoHighest(demoArray); console.log(result);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM