JavaScript - 將巢狀在陣列中的字串內的數字相加


假設我們有一個數組包含一些信用卡演示號碼,如下所示 -

const arr = ['4916-2600-1804-0530', '4779-252888-3972', '4252-278893-7978', '4556-4242-9283-2260'];

我們的任務是建立一個接收該陣列的函式。 該函式必須返回數字和最小的信用卡號。

如果兩個信用卡號具有相同的總和,則函式應返回最後一個信用卡號。

示例

其程式碼如下 -

const arr = ['4916-2600-1804-0530', '4779-252888-3972', '4252-278893-7978', '4556-4242-9283-2260'];
const findGreatestNumber = (arr) => {
   let n, i = 0, sums;
   sums = [];
   while (i < arr.length) {
      sums.push(sum(arr[i]));
      i++;
   }
   n = sums.lastIndexOf(Math.max.apply(null, sums));
   return arr[n];
}
const sum = (num) => {
   let i, integers, res;
   integers = num.split(/[-]+/g);
   i = 0;
   res = 0;
   while (i < integers.length) {
      res += Number(integers[i]);
      i++;
   }
   return res;
};
console.log(findGreatestNumber(arr));

輸出

控制檯中的輸出如下 -

4252-278893-7978

更新於: 2020 年 11 月 24 日

142 次瀏覽

開啟您的 職業生涯

透過完成課程來獲取認證

開始學習
廣告
© . All rights reserved.