如何在对象内部四舍五入数字

时间:2018-08-06 08:47:25

标签: javascript object rounding

如何在这样的对象内四舍五入数字:

{1: {x:10.76, y:50.44}, 2:{x:5.887, y:23.433}, ...}

我尝试使用map来做到这一点,但我猜想map仅适用于数组

obj.map(function(each_element){
    return Number(each_element.toFixed(0.1));
});

2 个答案:

答案 0 :(得分:7)

使用Object.values获取每个内部对象,然后遍历每个entries并将新的舍入数字分配给内部对象的适当键:

const input = {1: {x:10.76, y:50.44}, 2:{x:5.887, y:23.433} };
Object.values(input).forEach((inner) => {
  Object.entries(inner).forEach(([key, val]) => {
    inner[key] = Math.round(val);
  });
});
console.log(input);

答案 1 :(得分:2)

您可以为此使用for循环:

var obj = {1: {x:10.76, y:50.44}, 2:{x:5.887, y:23.433}};

for(var keyOuter in obj){
  for(var keyInner in obj[keyOuter]){
    obj[keyOuter][keyInner] = obj[keyOuter][keyInner].toFixed(0.1);
  }
}
console.log(obj);