子維 宋
子維 宋

Reputation: 85

how to use calculate array to calculate and push result to Object array?

I have a object Array

var dataArray = [
{ 'nation': 'TW', 'sales':'Jack', 'amount': 3000 },
{ 'nation': 'HK', 'sales':'Chen', 'amount': 3200 },        
{ 'nation': 'SZ', 'sales':'Tomm', 'amount': 2800 }, 
{ 'nation': 'SH', 'sales':'Alan', 'amount': 1900 },  
{ 'nation': 'JP', 'sales':'Will', 'amount': 1200 } 
] ;  

I like to do calculation of (amount *5) then push the result back to the Object array Is there a way to do that?

what i want as result

var dataArray = [
{ 'nation': 'TW', 'sales':'Jack', 'amount': 3000 ,'calv':15000},
{ 'nation': 'HK', 'sales':'Chen', 'amount': 3200 ,'calv':16000} ,        
{ 'nation': 'SZ', 'sales':'Tomm', 'amount': 2800 ,'calv':14000}, 
{ 'nation': 'SH', 'sales':'Alan', 'amount': 1900 ,'calv':9400} ,  
{ 'nation': 'JP', 'sales':'Will', 'amount': 1200 ,'calv':6000} 
] ;

Upvotes: 1

Views: 75

Answers (4)

jingyinggong
jingyinggong

Reputation: 646

use underscore or lodash to help

_.each(dataArray, function(v, k) {
  v['calv'] = v['amount']*5;
});

then you will get your result. or you may use it like this

for(var i in dataArray) {
  dataArray[i]['calv'] = dataArray[i]['amount'] * 5;
}

Upvotes: 1

xdazz
xdazz

Reputation: 160863

You could use .map method. (Note it needs a shim for old browsers)

var result = dataArray.map(function(e) { e.calv = e.amount * 5; return e;});

Upvotes: 1

user3152069
user3152069

Reputation: 416

I'll try if nobody beats me to anwsering this question :p.

for(var i = 0;i < dataArray.length;++i){
  dataArray[i]['calv'] = dataArray[i]['amount'] * 5;
}

Upvotes: 1

mcbex
mcbex

Reputation: 444

for (var i = 0, l = dataArray.length; i < l; i++) {
    dataArray[i].calv = dataArray[i].amount * 5;
}

Upvotes: 1

Related Questions