2016-03-29 18 views
0

Ich habe ein Objekt in vuejsJavascript (Vuejs) Objektliteral, Looping

data: { 
    food: { 
       monday: { 
       pizza:1, 
       chips:2, 
       pie:0,  
      }, 
      tuesday: { 
       pizza:1, 
       chips:2, 
       pie:1,  
       } 
      } 
} 

ich den Wert speziell this.food.monday.pizza

mit

zugreifen können, aber wie zähle ich die Anzahl der am Montag gegessenen Sachen (insgesamt 3)?

Antwort

3

In ES6 können Sie es wie folgt tun.

const objectValueSum = (obj) => 
    Object.keys(obj) 
     .map(food => obj[food]) 
     .reduce((a, b) => a + b); 

const sum = objectValueSum(this.data.food.monday); 
  • Object.keys kehrt der Objektschlüssel
  • map gibt ein Array von den Mengen
  • reduce fasst alle Beträge

Vergessen Sie nicht, Babel oder Traceur für transpiling zu verwenden zu ES5.

+0

Objects.key, map und reduce sind Funktionen von ES5, nur die Pfeilnotation stammt von ES6 in Ihrem Code –

Verwandte Themen