如何使用calculate数组计算并将结果推送到Object数组?

时间:2014-01-03 02:03:08

标签: javascript arrays

我有一个对象数组

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 } 
] ;  

我喜欢计算(金额* 5)然后将结果推回到Object数组 有没有办法做到这一点?

我想要的结果

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} 
] ;

4 个答案:

答案 0 :(得分:1)

您可以使用.map方法。 (注意它需要旧浏览器的垫片)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

如果没有人打我回答这个问题,我会试试:p。

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

答案 3 :(得分:1)

使用下划线或lodash帮助

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

然后你会得到你的结果。 或者你可以像这样使用它

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