題目
建立一個函數,該函數返回給定最小 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];
}
今天就介紹到這裡,如果大家有更好的寫法歡迎一起來討論~