gpt4 book ai didi

javascript - 计算对象键对值之间的增减

转载 作者:行者123 更新时间:2023-11-28 05:46:58 25 4
gpt4 key购买 nike

我有一个对象,填充了这样的对象:

tblValArr = {
2015: {
jan: 32.75,
feb: 58.65,
mar: 13.28,
apr: 35.78,
may: 98.45,
jun: 45.69,
jul: 32.68,
aug: 75.45,
sep: 39.87,
oct: 95.48,
nov: 26.78,
dec: 12.17
},
2016: {
jan: 48.12,
feb: 13.56,
mar: 57.54,
apr: 14.01,
may: 45.84,
jun: 84.12,
jul: 78.68,
aug: 18.10
...
...
...
...
},
};

现在我想计算 2016-2015 年间每个键值对(月)之间的增加/减少百分比。

注意:阵列的生命周期可以超过 2 年。但我只想计算添加到数组中的最近两个年份之间的计算。

所以,我寻找的结果将是一个看起来像这样的新对象:

newArrOfDiffs = { 
jan: 46.93%,
feb: -76.87%,
mar: ...,
apr: ...,
may: ...,
jun: ...,
jul: ...,
aug: ...,
sep: ...,
oct: ...,
nov: ...,
dec: ...
},

我该如何实现这个目标?

最佳答案

您可以获取键(年份),将它们转换为数字并按数字降序排序。然后仅使用前两项进行计算。

var tblValArr = { 2015: { jan: 32.75, feb: 58.65, mar: 13.28, apr: 35.78, may: 98.45, jun: 45.69, jul: 32.68, aug: 75.45, sep: 39.87, oct: 95.48, nov: 26.78, dec: 12.17 }, 2016: { jan: 48.12, feb: 13.56, mar: 57.54, apr: 14.01, may: 45.84, jun: 84.12, jul: 78.68, aug: 18.10 } },
newArrOfDiffs = {},
keys = Object.keys(tblValArr).map(Number).sort(function (a, b) { return b - a; });

Object.keys(tblValArr[keys[0]]).forEach(function (k) {
newArrOfDiffs[k] = ((tblValArr[keys[0]][k] / tblValArr[keys[1]][k] - 1) * 100).toFixed(2) + '%';
});

console.log(newArrOfDiffs);

关于javascript - 计算对象键对值之间的增减,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38434251/

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