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 次浏览

开启您的 职业生涯

通过完成课程来获取认证

开始学习
广告