2016-03-29 10 views
0

Ich habe zwei Arrays, eines mit Strings der großen Zahlen und das andere mit den Summen der großen Zahlen zusammen, gibt es eine Möglichkeit, wo ich die beiden Arrays miteinander haben kann ? Ich möchte, dass die Position [2] im ersten Array mit der gleichen Position im zweiten Array übereinstimmt. Genauer gesagt habe ich ursprünglich das Array mit großen Zahlen erstellt und eine Funktion geschrieben, die das zweite Array erstellt, das mir die Summen jeder Zahl in den großen Zahlen gibt (Beispiel: 123456789 im ersten Array wäre 45 im zweiten Array)), aber ich muss in der Lage sein, die beiden Arrays zu verbinden, da das erste Array mit einer beliebigen Anzahl von Zahlenfolgen arbeiten muss. (Sorry, wenn dies verwirrend, ich bin nur ein wenig aus meiner Tiefe zu diesem Thema.)Javascript-Arrays in Bezug zueinander/

Hier ist der Code arbeite ich an:

var theArray = ["585-777-7279", "922-901-8934", "112-211-4857", "994-934-9989"]; 

var plsWork = function() { 
    var theArrayTwo = theArray.join().replace(/-/g, ""); 
    var theArrayThree = theArrayTwo.split(",").map(Number); 
    var phoneSum = theArrayThree.map(function (a) { 
     return Array.prototype.slice.call(a.toString()).map(Number).reduce(function(b,c) { 
      return b + c; 
     }); 
    }) 
    phoneSum.sort().reverse(); 

    console.log(phoneSum); 
}; 

Grundsätzlich möchte ich nur wissen, ob Es gibt eine Möglichkeit, dass ich die beiden Arrays (das Original und das in der Funktion erstellte) dazu bringen kann, zu korrespondieren. Idealerweise möchte ich es haben können, wo ich zeigen kann, dass die kleinste Summe mit der Zahl aus dem ersten Array übereinstimmt.

+0

fügen Sie bitte einige Daten hinzu, wie die Arrays, über die Sie sprechen. –

+0

Wenn sie den gleichen Index haben, sollte es in Ordnung sein .. sonst erstellen Sie ein Array von Objekten .. '[{num: 123, sum: 6}, {} ...]' und halten Sie an einem Ort – webdeb

+0

müssen enthalten ein Code-Snippet oder zumindest ein JSON – Austin

Antwort

0

Wenn Sie bereits über die beiden Arrays verfügen, besteht die beste Möglichkeit, eine Beziehung zueinander herzustellen, darin, ein Array von Objekten zu erstellen, wie von @webdeb vorgeschlagen.

Wenn Sie stattdessen das Array mit großen Zahlen haben und dann alles, was Sie wollen, ein zweites Array erstellen, das in jedem Index die Summe aller Ziffern der Zahl im ersten Array enthält, würde ich den folgenden Code verwenden :

var large_numbers = [1234, 2345, 3456]; 

function sumDigits(number) { 
    var digitsArray = [], 
     string = number.toString(); // convert number to string 

    for (let i = 0; i < string.length; i++) { 
    // push the numbers to a temporary array so that 
    // I can sum them one by one later 
    digitsArray.push(parseInt(string[i], 10)); 
    } 

    // return the sum of all the elements of the digitsArray 
    return tempArray.reduce(function(prev, curr) { 
    return prev + curr; 
    }) 
} 

var sumsArray = large_numbers.map(sumDigits); // -> [10, 14, 18] 

die sumsArray enthält in der Summe aller Ziffern der Zahl in der Anordnung einer großen Anzahl in gleichem Index.