var cc = ['4916-2600-1804-0530', '4779-252888-3972', '4252-278893-7978', '4556-4242-9283-2260'];
对每个字符串求和的函数
function highest(inputArray) {
var currentHighest = 0;
var largest = 0;
var tempArray = [];
for (var a = 0; a < inputArray.length; a++) {
tempArray.push(inputArray[a].replace(/\D/g, ''));
}
function sumDigits(strA) {
var sum = 0;
for (var i = 0; i < strA.length; i++) {
sum += parseInt(strA.charAt(i), 10);
}
return sum;
}
组织数组中的字符串
for (var a = 0; a < tempArray.length; a++) {
var csum = sumDigits(tempArray[a]);
if (csum >= currentHighest) {
currentHighest = csum;
largest = inputArray[a];
}
}
return largest;
}
console.log(highest(cc));
到这里,我的知识就结束了。不确定使用什么来回调数据,因此它是按顺序和总和组织的。
最佳答案
您可以使用哈希表进行总计,并根据所有数字的总和进行排序。
var cc = ['4916-2600-1804-0530', '4779-252888-3972', '4252-278893-7978', '4556-4242-9283-2260'],
total = {};
cc.forEach(function (a) {
total[a] = a.match(/\d/g).reduce(function (r, b) {
return r + +b;
}, 0);
});
cc.sort(function (a, b) {
return total[a] - total[b];
});
console.log(total);
console.log(cc);
关于javascript - 需要什么样的命令行来查找所有信用卡号的总和并按升序排列它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40812649/