Ich erstellte eine Funktion, die ein Objekt ohne doppelte Verzweigung und den Gesamtumsatz pro Zweig zurückgibt.Erhalten Sie den Gesamtumsatz
var salesPersons = [
{"name": {"first": "Aleen", "last" :"Atkins"}, "sales" : "$2314", "branch": "Austin, TX"},
{"name": {"first": "Alvaro", "last" :"Angelos"}, "sales" : "$1668", "branch": "New York City, NY"},
{"name": {"first": "Denese", "last" :"Dossett"}, "sales" : "$9248", "branch": "Austin, TX"},
{"name": {"first": "Douglas", "last" :"Denney"}, "sales" : "$5058", "branch": "New York City, NY"},
{"name": {"first": "Earline", "last" :"Erickson"}, "sales" : "$18876", "branch": "New York City, NY"},
{"name": {"first": "Herman", "last" :"Hazell"}, "sales" : "$2746", "branch": "New York City, NY"},
{"name": {"first": "Homer", "last" :"Hirth"}, "sales" : "$474", "branch": "Orlando, FL"},
{"name": {"first": "Hwa", "last" :"Heidt"}, "sales" : "$9607", "branch": "San Francisco, CA"},
{"name": {"first": "Hyon", "last" :"Hampshire"}, "sales" : "$13598", "branch": "New York City, NY"},
{"name": {"first": "Issac", "last" :"Ingerson"}, "sales" : "$5225", "branch": "Austin, TX"},
{"name": {"first": "Jeraldine", "last" :"Joplin"}, "sales" : "$2891", "branch": "New York City, NY"},
{"name": {"first": "Jin", "last" :"Jeffrey"}, "sales" : "$14402", "branch": "Austin, TX"},
{"name": {"first": "Joleen", "last" :"Jolin"}, "sales" : "$15736", "branch": "Austin, TX"},
{"name": {"first": "Jude", "last" :"Jarrett"}, "sales" : "$7557", "branch": "San Francisco, CA"},
{"name": {"first": "Magda", "last" :"Mireles"}, "sales" : "$1498", "branch": "Austin, TX"},
{"name": {"first": "Mistie", "last" :"Montealegre"}, "sales" : "$6920", "branch": "New York City, NY"},
{"name": {"first": "Nancy", "last" :"Napoli"}, "sales" : "$5255", "branch": "New York City, NY"},
{"name": {"first": "Regine", "last" :"Rohrbaugh"}, "sales" : "$7881", "branch": "Orlando, FL"},
{"name": {"first": "Rolando", "last" :"Riebel"}, "sales" : "$8573", "branch": "San Francisco, CA"},
{"name": {"first": "Scarlett", "last" :"Stagg"}, "sales" : "$7126", "branch": "Orlando, FL"},
{"name": {"first": "Sherron", "last" :"Strawn"}, "sales" : "$8848", "branch": "New York City, NY"},
{"name": {"first": "Susan", "last" :"Shilling"}, "sales" : "$8542", "branch": "Seattle, WA"},
{"name": {"first": "Tama", "last" :"Tworek"}, "sales" : "$9200", "branch": "Seattle, WA"},
{"name": {"first": "Tonisha", "last" :"Taunton"}, "sales" : "$5219", "branch": "Orlando, FL"},
{"name": {"first": "Vergie", "last" :"Villescas"}, "sales" : "$8712", "branch": "New York City, NY"}
];
function convertSalesToInt(person){
var salesInt = person.sales.slice(1);
return parseInt(salesInt, 10);
}
function salesPerBranch(salesPersons){
var myObj = {};
var uniq = [];
var total = 0;
for(var i = 0; i < salesPersons.length; i++){
var splitTeam = salesPersons[i].branch;
if(uniq.indexOf(salesPersons) < 0){
myObj[salesPersons] = total+= convertSalesToInt(salesPersons[i]);
}
}
return myObj;
}
console.log(salesPerBranch(salesPersons));
/* { 'Austin, TX': 110898,
'New York City, NY': 187174,
'Orlando, FL': 178462,
'San Francisco, CA': 139527,
'Seattle, WA': 173243 } */
Die Antwort sollte wie folgt aussehen:
{
'Austin, TX': 48423,
'New York City, NY': 74572,
'Orlando, FL': 20700,
'San Francisco, CA': 25737,
'Seattle, WA': 17742
}
Der einzige Teil, wo ich stecke gerade jetzt ist der Teil, wo ich den Gesamtumsatz für jeden Zweig hinzuzufügen. Im Moment ist es nicht die richtige Menge. Dieser Teil ist dafür verantwortlich:
Wer weiß, was meine Fehler und wie kann ich es beheben?
Danke!
Hallo den Trick zu tun, versuche ich, einen Teil Ihrer Antwort zu verstehen, weil ich mit Objekten schwach bin. Für diese Zeile lautet "myObj [splitTeam] = myObj [splitTeam]? MyObj [splitTeam]: 0;" ; Ist das äquivalent zu "if (myObj [splitTeam]) return myObj [splitTeam]: 0 right? Wird nur ein Ausdruck zurückgegeben? Ich bin es gewohnt, 2 Ausdrücke mit ternären Operatoren zu sehen. –
this'myObj [splitTeam] = myObj [splitTeam]? myObj [splitTeam]: 0; 'ist gleich zu 'if (myObj [splitTeam]) {myObj [splitTeam] = meinObj [splitTeam]} else {myObj [splitTeam] = 0}', dies, weil, wenn Wir fügen ein Objekt zum ersten Mal hinzu, der Wert wird undefiniert sein, also setze ich ihn auf 0, wenn der Wert da ist, dann füge ich diesen Wert hinzu – Durga
Auch noch eine Sache, weiß das Objekt, Duplikate von selbst zu überspringen? Array, hat er Objekte mit doppelten Eigenschaften.Hintet das Objekt nur das und nur einzigartige Eigenschaften? Vielen Dank für die Erklärung. –