2016-10-26 4 views
0

Кто-нибудь подскажет, как умножить свойства объекта? Мне нужен этот объект, умноженной на подсчете стоимости недвижимости и положить вместеУмножить свойства объекта

var menu = [ 
     { 
      "id": 5, 
      "price": 13, 
      "count": 2 
     }, 
     { 
      "id": 8, 
      "price": 7, 
      "count": 3 
     }, 
     { 
      "id": 9, 
      "price": 17, 
      "count": 1 
     } 
    ] 

var sum = 0; 
for (var key in menu) { 
    for (var key1 in menu[key]) { 
     //console.log(key1); 
     if (key1 == 'price'){ 
      price += menu[key][key1]; 
     } 

    } 

} 

, но я понятия не имею, как умножать рассчитывать свойство

+0

показать нам что-то, что вы пробовали? – kukkuz

+1

По крайней мере, покажите нам ожидаемый результат. –

+0

вы хотите получить сумму всего 'price * count'? – kukkuz

ответ

-2

предположим, что вы хотите, чтобы вычислить сумму

var menu = [ 
 
    { 
 
    "id": 5, "price": 13, "count": 2 }, { 
 
    "id": 8, "price": 7, "count": 3 }, { "id": 9, "price": 17, "count": 1 } ]; 
 
    var sum = 0, item; 
 
    for(item in menu) 
 
    { 
 
     sum += menu[item].price * menu[item].count; 
 
    } 
 
    console.log(sum);

+0

да, его работа для меня, спасибо –

+0

@JohnDoe это вы хотите? – Mahi

-1

Вы, вероятно, хотите что-то вроде этого:

{ 
    "id": 5, 
    "price": 13, 
    "count": 3, 
    "value": function() {return this.price * this.count;} 
} 

Вы может сделать это путем создания объекта и добавления прототипа (который экономит память и время) или конструировать его таким образом каждый раз.

В противном случае вы можете просто сделать:

var obj = { ... } // your stuff 
alert(obj.price * obj.count) 
0

Вы можете использовать Array.prototype.map с Array.prototype.reduce.

.map принимает функцию обратного вызова, которая будет умножать цена каждого пункта по подсчета и создает новый array вида:

[26,21,17].

.reduce принимает функцию обратного вызова, а также, итерация нового создания массива подведению умноженных цены приводит к:

64

let menu = [ 
 
    { 
 
    "id": 5, 
 
    "price": 13, 
 
    "count": 2 
 
    }, 
 
    { 
 
    "id": 8, 
 
    "price": 7, 
 
    "count": 3 
 
    }, 
 
    { 
 
    "id": 9, 
 
    "price": 17, 
 
    "count": 1 
 
    } 
 
] 
 

 

 
let sum = menu.map(p => p.price * p.count).reduce((a,b) => a + b) 
 

 
console.log("Total:",sum)

Смежные вопросы