gpt4 book ai didi

javascript - 将数组转换为 cumulative% 数组

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:57:20 25 4
gpt4 key购买 nike

我有一个这样的数组:

[30, 10, 4, 3, 3]

我需要将其转换为一个 cumulative% 数组,每个值都是到那里的所有值的总和除以数组中所有值的总和。

在本例中,总数为 50。因此,第一个值将为 30/50,即 0.6 或 60%。第二个值为 (30+10)/50,即 0.8 或 80% 等等。

这里的最终数组将是:

[60%, 80%, 88%, 94%, 100%]

我如何使用 JavaScript 进行这种转换?最有效的方法是什么?

最佳答案

尝试,

var x = [30, 10, 4, 3, 3];
var y = x.reduce(function(a,b){ return a+b; }, 0)
x = x.map(function(itm, index){
for(var i=0;i<index;i++) itm += x[i];
return (itm/y * 100);
});

x; //[60, 80, 88, 94, 100]

这样看起来会更优雅,

var x = [30, 10, 4, 3, 3];
var y = x.reduce(function(a,b){ return a+b; }, 0), sum = 0;
x = x.map(function(itm) { return sum += itm, (sum / y) * 100; });

关于javascript - 将数组转换为 cumulative% 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36576013/

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