現在的情況是,我需要按數字陣列的像素畫一個圓,例如[22, 25, 36, 44, 115, 180]
最小的圓應該是20px,最大的應該是130px,在這種情況下,最小的數字是22,它應該是20px,最大的是180,圓應該是130px。
因此,在陣列中的任何數字的情況下,我們應該從最小的圓圈從20px開始,最大的圓圈從130px開始,之間的所有東西都應該相應地縮放。
const getSize=(values, value)=> {
let size;
const volumes = values.map(a => a. value).sort((a, b) => a - b)。
const min = Math.min(... volumes)。
const max = Math.max(... volumes)。
console.log(min, max, volumes)。
return size。
};
該方法將接收來自服務器的引數,以及來自單一物件的值,我需要在樣式寬度和高度上回傳圓的大小,就像下面這樣。
<span
style={{
bottom: 0,
width: getSize(item.values, itemData.value) 。
height: getSize(item.values, itemData.value) 。
位置。'absolute',
left: 0,
右: 0,
margin: 'auto',
}}
/>
uj5u.com熱心網友回復:
計算每個數字的相對比例為scale = (number - min) / (max - min),然后使用所需的min和max值做反向計算:
numbers = [22, 25, 36, 44, 115, 180]
min = numbers[0]
max = numbers[numbers.length - 1]
scales = numbers.map(x => (x - min) / (max - min)
newMin = 20 (x - min)
newMax = 130map(x => newMin x * (newMax - newMin))
console.log(newNumbers)
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
如果你需要整數,請添加Math.floor。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/333306.html
標籤:
下一篇:二進制搜索樹的布林值回傳型別
