【发布时间】:2017-03-14 04:14:26
【问题描述】:
因此,在努力寻找任何给定数量的信用卡号码中的最高和之后,我意识到我自己挖了一个洞。 (目前使用 3 张卡“123-123、234-234 和 345-345”作为测试编号。)写出来后:
var howM = prompt("How many cards?")
var arr = [];
for(var i = 0; i < howM; i++)
arr.push(prompt("Enter a card:"));
console.log(arr)
var sumpre = [];
for(var i = 0; i < howM; i++) {
var sum = 0;
var eXt = arr[i];
eXt = eXt.replace (/-/g, "");
for (var j = 0; j < eXt.length; j++) {
sum += parseInt(eXt.substr(j, 1));
}
sumpre.push(sum);
}
console.log(sumpre);
var highest = sumpre[0];
for (var i=1; i<=sumpre.length; i++){
if (sumpre[i]>highest){
highest=sumpre[i];
}
}
console.log(highest)
然而,这可以找到最高的总和;我需要它在最后以原始形式返回具有最高总和的卡号,但不确定哪种方法最适合返回该卡号,或者我是否应该从头开始重新格式化。
【问题讨论】:
-
对于当前代码的最小更改,您可以使用
highest来保持数组项的索引具有最高值,而不是保持实际值本身 - 然后您可以检索原始卡通过该指数的价值。 (顺便说一句,eXt.substr(j, 1)可以简化为eXt.charAt(j)或只是eXt[j]。) -
没有仔细看你的code但不应该arr[highest]返回原始卡号吗?
-
谢谢两位,我会牢记这些回顾
标签: javascript arrays for-loop integer