2023-09-24|閱讀時間 ‧ 約 2 分鐘

#7 Codewars - Sum of two lowest positive integers (7 kyu)

題目

原始題目

建立一個函數,該函數返回給定最小 4 個正整數的數組的兩個最低正數的總和。不會傳入浮點數或非正整數。

例如,當一個數組像 [19, 5, 42, 2, 77], 輸出應該是 7
[10, 343445353, 3453445, 3453545353453] 應該回來 3453455

拆解流程

依據題意可整理出以下重點:

  • 目標:篩選出陣列中最小的兩個數字,並相加
  • 規則:只會傳入正整數,不會傳入浮點數或非正整數
  • 方法:建立一個新陣列,並使用陣列方法,由小到大排列數字

程式撰寫

function sumTwoSmallestNumbers(numbers) {
const arr = numbers.sort((a, b) => {
return a - b;
});
return arr[0] + arr[1];
}

改善寫法

sort 方法會更動到原始陣列,需要使用淺拷貝的方式複製陣列

function sumTwoSmallestNumbers(numbers) {
const arr = [...numbers];
arr.sort((a, b) => {
return a - b;
});
return arr[0] + arr[1];
}


今天就介紹到這裡,如果大家有更好的寫法歡迎一起來討論~

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.