2017-03-26 7 views
0

Wenn ich zwei Arrays habe und sie kombiniere, möchte ich wissen, welche Elemente ursprünglich in jedem Array waren. Zum Beispiel habe ich diese zwei Arrays:Woher weiß man, welche Elemente aus welchem ​​Array zusammengesetzt werden?

primaryTypes = [ 
new PrimaryType(43), 
new PrimaryType(86), 
new PrimaryType(12), 
]; 

secondaryTypes = [ 
new SecondaryType(58), 
new SecondaryType(8), 
new SecondaryType(98), 
]; 

Ich kombiniere die beiden Arrays wie folgt aus:

let resultsArray: any[] = []; 
resultsArray = this.primarytypes.concat(this.secondarytypes); 

Wenn ich durch resultsArray bin Iterieren und wollte eine Summe der Beträge erhalten, die ursprünglich in Das Array primaryTypes. Wie kann ich feststellen, welche Elemente ursprünglich in primaryTypes enthalten waren, und diese Elemente nur zusammenfügen?

+0

Gibt es einen Grund, warum Sie nicht einfach die Werte in 'primaryTypes' hinzufügen können _before_ Sie die beiden Arrays zusammenführen? – dave

+0

Das ist ein guter Punkt. Ich habe mich immer noch gefragt, ob es einen Weg gibt zu überprüfen, welche Artikel ursprünglich aus jedem Array stammen. – Rich

+1

Vielleicht tut der Operator [instanceof] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof), was Sie brauchen. – dave

Antwort

1

Verwenden Sie den Operator instanceof. :

resultsArray.forEach(item => { 
    if (item instanceof PrimaryType) { 
     //... 
    } 

    if (item instanceof SecondaryType) { 
     //... 
    } 
}); 
+0

Danke für die Hilfe. Das war, was ich brauchte. – Rich

+0

froh, Ihnen zu helfen :) – Diullei

Verwandte Themen