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 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd