You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于myObj数组长度动态设置进度条高度避免超出100%

解决方案

核心逻辑是用对应level单词数 / 总单词数的实际占比计算高度,替代固定乘10的硬编码逻辑,永远不会超出100%。

具体实现步骤

  • 第一步:统计各level的单词数量,同时获取数组总长度作为计算基数
// 初始化各level计数
const levelCount = {
  0: 0,
  1: 0,
  2: 0
}
// 遍历数组统计数量
myObj.forEach(item => {
  levelCount[item.level] += 1
})
// 获取总单词数
const total = myObj.length
  • 第二步:判断总长度是否为0,避免除以0报错,再按实际占比设置进度条高度
if (total > 0) {
  // 假设三个进度条分别对应类名 progress-0、progress-1、progress-2
  $('.progress-0').css('height', (levelCount[0] / total * 100).toFixed(2) + '%')
  $('.progress-1').css('height', (levelCount[1] / total * 100).toFixed(2) + '%')
  $('.progress-2').css('height', (levelCount[2] / total * 100).toFixed(2) + '%')
} else {
  // 数组为空时所有进度条高度置为0
  $('.progressBar').css('height', '0%')
}

效果验证

拿你给出的示例测试:总长度17,level2有13个、level1和level0各2个:

  • level2占比:13/17*100≈76.47%
  • level1占比:2/17*100≈11.76%
  • level0占比:2/17*100≈11.76%
    三个数值加总刚好为100%,既不会超出进度条最大高度,也能准确反映各level的真实占比。

内容的提问来源于stack exchange,提问作者Smylif3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 06:48:03