如何在这样的对象内四舍五入数字:
{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));
});
答案 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);