假设我们有一个包含一些演示信用卡号的数组,如下所示:
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