开发者问题收集

如何对对象数组中的某些值进行四舍五入?

2012-06-04
98
 Array = [ {name:apples, price:3.99, tax:0.20}, 
           {name:oranges, price:1.40, tax:0.15},
           {name:bananas, price:0.99, tax:0.10}, 
         ]

我该如何在所有“价格”值上运行 toFixed()(而不是名称,出于性能目的),以便得出这个结果:

 Array = [ {name:apples, price:4, tax:0.20}, 
           {name:oranges, price:1, tax:0.15},
           {name:bananas, price:1, tax:0.10}, 
         ]

我必须经过循环路线吗?

3个回答

只需循环遍历数组(顺便说一句:切勿使用 Array 作为变量名):

for (var i=0; i<arr.length; i++)
    arr[i].roundedPrice = Math.round(arr[i].price);
Bergi
2012-06-04

在这里:

101120222

live demo: http://jsfiddle.net/apsdv/

Šime Vidas
2012-06-04
for (var ixFruit = 0; ixFruit < fruits.length; ++ixFruit)
    fruits[ixFruit].price = fruits[ixFruit].price.toFixed();

这看起来非常简单,不确定如何使它变得更简单。

Jeremy Goodell
2012-06-04