Javascript 在java脚本中找到最高整数后返回数组的一部分?

Javascript 在java脚本中找到最高整数后返回数组的一部分?,javascript,arrays,for-loop,integer,Javascript,Arrays,For Loop,Integer,因此,在努力寻找任何给定数量的信用卡号码中的最高金额后,我意识到我自己陷入了一个小洞。(目前使用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 = []; fo

因此,在努力寻找任何给定数量的信用卡号码中的最高金额后,我意识到我自己陷入了一个小洞。(目前使用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)
var howM=prompt(“多少张卡?”)
var-arr=[];
对于(var i=0;i

然而,哪种方法能找到最高的金额;我需要它在最后以原始形式返回金额最高的卡号,并且不确定返回该卡号的最佳方法是什么,或者我是否应该从一开始就重新格式化它。

如我在评论中所述,或者如中所示,对当前代码进行最小更改的一种方法是使用
highest
以保持数组项的索引具有最高值,而不是保留实际值本身-然后您可以通过该索引检索原始卡值

但为了好玩,这里有另一种方法:

函数sumDigitsInString(s){
returnarray.prototype.reduce.call(s,函数(p,c){returnp+(+c | | 0)},0);
}
函数项最大和(a){
返回a.reduce(函数(p,c){
var总和=sumDigitsInString(c);
返回p[0]>sum?p:[sum,c];
}, [0])[1];
}
//给定一个字符串数组:
变量输入=[“123-123”、“234-234”、“345-345”、“111-111”];
var最大=最大金额的项目(输入);

控制台日志(最大)您也可以这样做,只需使用数组方法即可

var输入卡=[“989-000”、“123-999”、“456-456”];
var总和=0,
sumNumbers={},
maxVal=0;
inputCards.map(函数(num){
var replaceText=newregexp(/-/g);
var number=num.replace(replaceText,“”).split(“”);
var-prevVal=0;
sumNumbers[num]=数字。减少((prevVal,currentVal)=>
parseInt(prevVal,10)+parseInt(currentVal,10));
});
console.log(Object.keys(sumNumbers).reduce((maxVal,currentVal)=>

sumNumbers[maxVal]>sumNumbers[currentVal]?maxVal:currentVal))
对于当前代码的最小更改,您可以使用
highest
保留具有最高值的数组项索引,而不是保留实际值本身-然后您可以通过该索引检索原始卡值。(顺便说一句,
eXt.substr(j,1)
可以简化为
eXt.charAt(j)
,或者只是
eXt[j]
)没有仔细查看您的代码,但是[highest]不应该返回原始卡号吗?谢谢,我会带着这些在MindThank@GerardoFurtado回顾一下。我链接到你的答案,因为它清楚地表明了OP需要改变什么,我认为OP接受它是正确的。我的回答并不是要彻底到可以被接受的程度:我想我应该展示一些实现问题不同部分的想法,而不进行实际解释,让任何好奇的读者自己使用我包含的链接来理解。