gpt4 book ai didi

javascript - 将分数计算为相对于其他分数的值

转载 作者:行者123 更新时间:2023-11-28 03:24:58 27 4
gpt4 key购买 nike

抱歉,我无法显示代码,我只是不确定如何解决这个问题。

我想实现类似于 display: flex/grid 对分数所做的事情:

给定容器宽度:200px

和项目:[0.5, 1, 50px]

我应该能够计算相对于彼此的小数:

item1: 50 (half the size of item 2)
item2: 100 (double the size of item 1)
item3: 50 (static size not a fraction)

const totalSize = 900;

const items = [1, 0.2, 75, 0.6, 1, 100];

const totalStaticSize = items.filter(n => n > 1).reduce((acc, n) => acc + n, 0);

const derivedItems = items.map(item => {
if (item > 1) {
// A static value.
return item;
}

// How to calculate this fractional item relative to others?
return item;
});

console.log(derivedItems);

最佳答案

减去静态项后,计算小数项的总和,然后就可以计算每个值相对于剩余容器宽度的百分比(减去静态项总和):

const totalSize = 900;
const items = [1, 0.2, 75, 0.6, 1, 100];
const totalStaticSize = items.filter(n => n > 1).reduce((acc, n) => acc + n, 0);
const sum = derivedItems.reduce((a, b) => a + b, 0);
const percentages = derivedItems.map(d => d / sum);
const relativeToContainer = percentages.map(p => p * (totalSize - totalStaticSize));

关于javascript - 将分数计算为相对于其他分数的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58737641/

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