gpt4 book ai didi

javascript - 循环遍历对象以执行最接近的高整数的数学运算?

转载 作者:行者123 更新时间:2023-12-02 21:32:41 26 4
gpt4 key购买 nike

我希望循环遍历一个对象,获取一组值,然后计算出该值与下一个整数之间的差异。

例如,假设我有这个对象:

const data = [
{
"uid": "1121212",
"amount": {
"money": 11.2
},
"sourceAmount": {
"money": 2.2
}
},
{
"uid": "343343443",
"amount": {
"money": 222.30
},
"sourceAmount": {
"money": 444
}
},
{
"uid": "44",
"amount": {
"money": 54.21
},
"sourceAmount": {
"money": 32
}
}
]

如果可能的话,我希望循环遍历这个并从 amount.money 键中获取值,并计算出该数字与下一个整数之间的差异。因此,在上面的示例中,可以获得值 11.22 & 222.30 & 54.21 并计算出与 12 的差异 22355 因为这些是下一个值。因此差异如下:78 & 7079。这些值(我在想)可以被插入数组中吗?

我一直在研究map()功能,但正在努力形成满足我需要的东西?我有一些看起来像这样的东西:

const difference = [];

for (let i = 0, l = data.length; i < l; i++) {
var money = data.amount.money[i];
let roundedNumber = Math.ceil(money);
let d = function (money, roundedNumber) { return Math.abs(roundedNumber - money); }
difference.push(d)
}

我认为这是一个糟糕的尝试,任何有关最佳实践的帮助都会很棒。

差异数组应如下所示:const Difference = ['78', '70', '79'];const Difference = ['0.78', '0.70', '0.79'];

最佳答案

我认为以下内容为 .map()Math.ceil()组合可以工作:

const data = [ { "uid": "1121212", "amount": { "money": 11.2 }, "sourceAmount": { "money": 2.2 } }, { "uid": "343343443", "amount": { "money": 222.30 }, "sourceAmount": { "money": 444 } }, { "uid": "44", "amount": { "money": 54.21 }, "sourceAmount": { "money": 32 } } ]
const result = data.map(e => (Math.ceil(e.amount.money) - e.amount.money).toFixed(2));
console.log(result);

由于 12 - 11.2,第一个值为 0.80

请查找用 Number.parseFloat() 解析的数字:

const data = [ { "uid": "1121212", "amount": { "money": 11.2 }, "sourceAmount": { "money": 2.2 } }, { "uid": "343343443", "amount": { "money": 222.30 }, "sourceAmount": { "money": 444 } }, { "uid": "44", "amount": { "money": 54.21 }, "sourceAmount": { "money": 32 } } ]
const result = data.map(e => Number.parseFloat((Math.ceil(e.amount.money) - e.amount.money).toFixed(2)));
console.log(result);

希望这会有所帮助!

关于javascript - 循环遍历对象以执行最接近的高整数的数学运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60582184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com