JS--计算序列的上下边界

一般用于绘制折线图的时候,计算Y轴的上下边界,使得绘制出来的折线波动性看起来较强。

/**
 * 计算序列的上下边界
 * @param array 元素为数字的数组
 * @param upperLimit 上边界比值, (上边 - 最大值) / (最大值 - 最小值)
 * @param lowerLimit 下边界比值, (最小值 - 下边) / (最大值 - 最小值)
 */
export const calcBoundary = (array, upperLimit = 0.05, lowerLimit = 0.05) => {
  let delNull = JSON.parse(JSON.stringify(array))
  delNull = delNull.filter(item => { // 去除有null的数据的情况
    if ((item !== null)) return item
  })
  const maxVal = Math.max(...delNull)
  const minVal = Math.min(...delNull)
  const height = maxVal - minVal
  let upperVal = parseFloat((maxVal + Math.abs(height) * upperLimit))
  let lowerVal = (parseFloat(minVal - Math.abs(height) * lowerLimit)).toFixed(3)
  return { upperVal, lowerVal }
}

你可能感兴趣的:(JS,javascript,前端)