如何对列表或文本中相同内容提取及编号

使用问题 · 1025 次浏览
墨尹琳 创建于 29天7小时前

对于列表或文本内容,如何提取相同值并编号 或者直接编号不提取

比如有以下列表:

A
A
B
C
C

编号为:
A1
A2
B
C1
C2
其中的相同内容都是未知的,无法直接指定

 


回复内容
沉没的白鲸 29天7小时前
#1

可以先看一下 列表项统计(子程序) - 子程序信息 - Quicker

https://getquicker.net/SubProgram?id=47fa8674-6ddd-4099-38a3-08d8a3bf4992 

墨尹琳 回复 沉没的白鲸 29天5小时前 :
谢谢,解决了
wilsons 29天5小时前
#2

可以用其他语言实现,比如js

代码如下:

//.js 主函数 exec()
function exec() {
  var inputList = quickerGetVar("inputList");
  var outputList = numberDuplicates(inputList);
  quickerSetVar("outputList", outputList);
  function numberDuplicates(arr) {
    var countMap = {}; // 用于存储每个元素的计数
    var result = []; // 用于存储最终结果
    for (var i = 0; i < arr.length; i++) {
      var item = arr[i];
      if (countMap[item] === undefined) {
        countMap[item] = 1; // 初始化计数
      } else {
        countMap[item] += 1; // 增加计数
      }
      // 无论是否是第一次出现,都添加带编号的项
      result.push(item + countMap[item]);
    }
    // 处理只有一个重复项的情况
    for (var j in countMap) {
      var val = countMap[j];
      if (val === 1) {
        var index = result.indexOf(j + "" + countMap[j]);
        result[index] = j;
      }
    }
    return result;
  }
  return 0; //返回0表示成功。返回其他数字表示失败。
}






wilsons 最后更新于 29天4小时前
墨尹琳 回复 wilsons 29天5小时前 :
谢谢,看来我要了解下jav了😆
wilsons 回复 墨尹琳 29天4小时前 :

不如了解下c#,在quicker里JavaScript的功能有限,且只能用es5

wilsons 最后更新于 29天4小时前
CL 回复 wilsons 29天4小时前 :

新版的支持更高级的js语法了。

wilsons 回复 CL 29天4小时前 :

老大威武!👍👍👍

墨尹琳 29天4小时前 :

明白了,感谢指点

回复主贴