开发者问题收集

如何对对象内部的数字进行舍入

2018-08-06
378

我怎样才能像这样对对象内部的数字进行舍入:

{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个回答

使用 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);
CertainPerformance
2018-08-06

您可以使用 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);
Ankit Agarwal
2018-08-06