2017-01-01 3 views
-3

私は、数字の合計が最大のクレジットカード番号を見つけることに興味があります。 2つ以上の桁が同じ最大の桁を持っている場合は、その合計でリストの最後の桁が必要です。クレジットカードの配列の最大合計を見つける

私は1つの引数をとる単一の関数を記述しようとしています。その議論は、クレジットカード番号の配列になります。配列には任意の数のクレジットカード番号があり、それぞれが数字とダッシュの文字列であるとします。この関数は、最大の桁数を持つクレジットカード番号を返します。ここで

は私が遠

function getSum(stringLength) { 
    var stringLength = ['1476-0089-5132-7420', '2034-6002-3978-5567', '6647-1123-5895-0038']; 
    var i; 
    for (i = 0; i < stringLength; i++); 
    for (string = 0; string < [3]; stringLength++); 
    //stringLength + i =Sum ; 

    if (0 > 1, 2) { 
     return string(0); 
    } else if (1 > 0, 2) { 
     return string(1); 
    } else(2 > 1, 0) { 
     return string(2); 
    } 
    console.log('1476-0089-5132-7420', '2034-6002-3978-5567', '6647-  1123-5895-0038'); 
    console.log('The Larget Sum is:' + true); 
    } 
    /*criteria for code: Contain all variables and code needed within  a function. 
    Have that function take one argument which will be an array of credit card number strings. 
    Determine the sum of digits for each credit card number. 
    Determine which credit card number has the last largest sum of digits. 
    Use a return statement to return the required card number in its’ original form.*/ 
+3

このコードは混乱です。 'for(i = 0; i Barmar

+0

'stringLength'は数値ではなく配列であるため、' stringLength ++ 'は意味をなさない。 'if(0> 2、3)'とはどういう意味ですか? – Barmar

+0

'return string(0)'とは何でしょうか? 'string()'関数はなく、 'string'は2番目の' for'ループの変数の名前です。 – Barmar

答えて

0

あなたがこのアプローチを試みることができる持っているものです。

注:;あなたがfor(...);を行う際にループが終了し、それはありません、文を終了するために使用されます何もしないでください。

var cardNos = ['1476-0089-5132-7420', '2034-6002-3978-5567', '6647-1123-5895-0038']; 
 

 
var largestSum = cardNos.reduce(function(p,c){ 
 
    return Math.max(p, getSumOfDigits(c)) 
 
}, 0); 
 

 
function getSumOfDigits(str){ 
 
    var s = str.replace(/[^0-9]/g, '').split(""); 
 
    return s.reduce(function(p,c){ return +p + +c}); 
 
} 
 

 
console.log(largestSum);

関連する問題