gpt4 book ai didi

Javascript 对嵌套在数组中的字符串中的数字求和

转载 作者:行者123 更新时间:2023-11-30 15:39:49 25 4
gpt4 key购买 nike

我的任务是创建一个具有单个输入参数的函数。此参数是一个包含信用卡号字符串的数组,其中包含连字符。该函数必须输出具有最大位数的信用卡号。如果两个信用卡号的总和相同,则应返回最后一个信用卡号。这是嵌套数组的示例。

['4916-2600-1804-0530', '4779-252888-3972', '4252-278893-7978', '4556-4242-9283-2260']

下面是我试过的。任何和所有建议表示赞赏。谢谢!

function creditSum(creditCardNumber) {
var number1= creditCardNumber[0];
var number2= creditCardNumber[1];
var number3= creditCardNumber[2];
var number4= creditCardNumber[3];
var split1=[];
var split2=[];
var split3=[];
var split4=[];
split1= number1.split ('');
split2= number2.split ('');
split3= number3.split ('');
split4= number4.split ('');
var sum1= split1[0]+split1[1]+split1[2]+split1[3]+split1[5]+split1[6]+split1[7]+split1[8]+split1[10]+split1[11]+split1[12]+split1[13]+split1[15]+split1[16]+split1[17]+split1[18];
var sum2= split2[0]+split2[1]+split2[2]+split2[3]+split2[5]+split2[6]+split2[7]+split2[8]+split2[10]+split2[11]+split2[12]+split2[13]+split2[15]+split2[16]+split2[17]+split2[18];
var sum3= split3[0]+split3[1]+split3[2]+split3[3]+split3[5]+split3[6]+split3[7]+split3[8]+split3[10]+split3[11]+split3[12]+split3[13]+split3[15]+split3[16]+split3[17]+split3[18];
var sum4= split4[0]+split4[1]+split4[2]+split4[3]+split4[5]+split4[6]+split4[7]+split4[8]+split4[10]+split4[11]+split4[12]+split4[13]+split4[15]+split4[16]+split4[17]+split4[18];
if (sum1>sum2 && sum1>sum3 && sum1>sum4){
answer= number1;
}
else if (sum2>sum1 && sum2>sum3 && sum2>sum4){
answer= number2;
}
else if (sum3>sum1 && sum3>sum2 && sum3>sum4){
answer=number3;
}
else if (sum4>sum1 && sum4>sum2 && sum4>sum3){
answer=number4;
}
else if (sum1==sum2){
answer=number2;
}
else if (sum1==sum3){
answer=sum3;
}
else if (sum1==sum4){
answer=sum4;
}
else if (sum2==sum3){
answer=sum3;
}
else if (sum2==sum4){
answer=sum4;
}
else if (sum3==sum4){
answer=sum4;
}
return answer

}

最佳答案

你可以使用这个 ES6 函数:

function cardWithMaxSum(creditCardNumbers) {
return creditCardNumbers.reduce( (best, card) => {
let sum = card.match(/\d/g).reduce( (a,b) => +a + +b );
return sum >= best[0] ? [sum, card] : best;
}, [-1] )[1];
}

var creditCardNumbers = ['4916-2600-1804-0530', '4779-252888-3972',
'4252-278893-7978', '4556-4242-9283-2260'];

console.log(cardWithMaxSum(creditCardNumbers));

关于Javascript 对嵌套在数组中的字符串中的数字求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40983157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com