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条回答 默认 最新

  • BitGPT 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]]
    
    
    
    评论
  • Jackyin0720 2023-02-06 16:38
    关注

    提供参考实例【JS宏综合示例-多维度筛选统计(带窗体)】,链接:https://blog.csdn.net/as604049322/article/details/127138015

    评论
  • CSDN-Ada助手 CSDN-AI 官方账号 2023-02-08 03:07
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

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

悬赏问题

  • ¥20 C语言字符串不区分大小写字典排序相关问题
  • ¥15 关于#python#的问题:我希望通过逆向技术爬取1688搜索页下滑加载的数据
  • ¥15 学习C++过程中遇到的问题
  • ¥15 关于Linux的终端里,模拟实现一个带口令保护的屏保程序遇到的输入输出的问题!(语言-c语言)
  • ¥15 学习C++过程中遇到的问题
  • ¥15 请问,这个嵌入式Linux系统怎么分析,crc检验区域在哪
  • ¥15 二分类改为多分类问题
  • ¥15 Unity微信小游戏上调用ReadPixels()方法报错
  • ¥15 如何通过求后验分布求得样本中属于两种物种其中一种的概率?
  • ¥15 q从常量变成sin函数,怎么改写python代码?