开发者问题收集

对象数组中的四舍五入值

2019-08-21
1722

我有一个对象数组,我想将值四舍五入为最接近的整数。你知道我该怎么做吗?

items.forEach(item => console.log(item.value.toFixed(0)));

但我需要数字,而不是字符串。

我也尝试使用 map

items.map(item => item.value.toFixed(0)).map(Number);

但我不想将 item 更改为 item.value

我希望你能帮助我。

const items = [
    {
        name: 'pen',
        value: 10.12
    },
    {
        name: 'rubber',
        value: 5.99
    }
];
3个回答

使用 Math.round

const items = [
    {
        name: 'pen',
        value: 10.12
    },
    {
        name: 'rubber',
        value: 5.99
    }
];

var results = items.map(item => Math.round(item.value));

console.log(results);

当然,如果您愿意,可以保留原始对象,为此使用 扩展语法 ...items 保留现有对象的所有属性 - 只需根据需要用其四舍五入版本覆盖 value 即可。

const items = [
    {
        name: 'pen',
        value: 10.12
    },
    {
        name: 'rubber',
        value: 5.99
    }
];

var results = items.map(item => ({
  ...item,
  value: Math.round(item.value)
}));

console.log(results);
Jamiec
2019-08-21

Math.round() 将把数字四舍五入为最接近的整数

Sam
2019-08-21

您可以像这样向数组中的对象添加新属性:

const items = [
        {
            name: 'pen',
            value: 10.12
        },
        {
            name: 'rubber',
            value: 5.99
        }
    ];

    items.forEach(item => item.rounded = Math.round(item.value));

    console.log(items);

这将为您提供:

  {
    "name": "pen",
    "value": 10.12,
    "rounded": 10
  },
  {
    "name": "rubber",
    "value": 5.99,
    "rounded": 6
  }
]
lnrdnl
2019-08-21