HKJ114119 2023-02-06 14:00 采纳率: 0%
浏览 101
已结题

WPS JS宏提取满足比率的字符区段

img

图中“-”和“+”代表良品,其他字母代表不良品
良品率=良品数 / 总数,;良品数:此区段中出现“-”的总次数,总数:此区段所有字符的总次数
需求:
1、想利用WPS JS宏从此区段中最大化挑选良品率 ≥70%的区段,并标记出来,如果存在2个或2个以上的区间需要标记出来首尾。
2、如果过程中有连续≥6个不良品数,需要标记红色。
3、2个连续≥6个不良品数之间如果<300片,那这区间不管良品、不良品均需标红
4、最后统计出来未标红区域的总数、良品数。请指教。

  • 写回答

3条回答 默认 最新

  • CodeBytes 2023-02-06 14:38
    关注

    该回答引用ChatGPT
    请参考下面的解决方案,如果有帮助,还请点击 “采纳” 感谢支持!
    代码通过枚举字符串中的每个字符,如果该字符是良品,则将计数器加1并将结束位置更新到当前位置。如果该字符不是良品,则需要检查当前区段的良品率是否≥70%,如果是,则将该区段加入到结果数组中。最后,代码还需要检查字符串末尾的区段是否符合要求。

    function markGoodSegment(str) {
      let segments = [];
      let start = 0;
      let end = 0;
      let goodCount = 0;
      for (let i = 0; i < str.length; i++) {
        if (str[i] === '-') {
          goodCount++;
          end = i;
        } else {
          if (goodCount / (end - start + 1) >= 0.7) {
            segments.push([start, end]);
          }
          start = i + 1;
          end = i + 1;
          goodCount = 0;
        }
      }
      if (goodCount / (end - start + 1) >= 0.7) {
        segments.push([start, end]);
      }
      return segments;
    }
    
    let str = 'A-B--C-D';
    let segments = markGoodSegment(str);
    console.log(segments); // [[0, 1], [3, 4]]
    
    
    
    评论

报告相同问题?

问题事件

  • 系统已结题 2月14日
  • 修改了问题 2月7日
  • 修改了问题 2月7日
  • 修改了问题 2月7日
  • 展开全部

悬赏问题

  • ¥15 关于推送项目到github的问题
  • ¥15 急!C++指针编写相关的问题
  • ¥30 用python写一个多签情况下波场的代理资源和回收资源
  • ¥15 怎么在matlab中输出显示泵的流量-扬程和管路损失与流量均在一个表格里
  • ¥15 matlab学期例题代码答疑
  • ¥50 Hadoop:好友推荐
  • ¥15 在线手电筒追加按钮JS
  • ¥15 调用函数时,无关变量的改变引起函数值的改变
  • ¥15 xy坐标转化为经纬度坐标
  • ¥15 一般三角模糊数的上界值和下届值取中值的多少比较合理?