在 imacros Javascript 中获取唯一字符串

Get unique string in imacros Javascript

假设我有一个字符串“1,2,1,2,2,3,4”,现在我想从中获得唯一性,这样我的 output 看起来像1,2,3,4 我试过

TAG POS=1 TYPE=div ATTR=class:type-txt<sp>icon-txt&&TXT:* EXTRACT=TXT
SET ag EVAL("'{{!EXTRACT}}'.split('BHK')[0].replace(/(.)+/g, '');")
PROMPT {{ag}}

这是我从中提取数据的网站 link

“ag”的o\p是1,1,2,1,1,2,3

有什么办法可以解决吗

谢谢。

你可以

let str =  "1,2,1,2,2,3,4";

let result = Object.keys(str.split(',').reduce((a, b) => (a[b] = true, a), {}));

console.log(result);

说明,我利用了对象的键是唯一的这一事实,所以在拆分字符串后,我只是创建了一个对象,将这些元素作为属性,键都是唯一的。

你也可以试试

let str = "1,2,1,2,2,3,4";

let result = Array.from(new Set(str.split(',')));

console.log(result);

您可以尝试这样的操作:

逻辑:

  • 使用定界符(,) 拆分字符串以获得值数组。
  • 遍历这个数组。
  • 将字符串连接到空字符串以创建最终字符串。
  • 检查您的最终字符串中是否存在该值。
    • 如果是,请不要连接。
    • 如果不是,则合并它。
  • Return 最后一个字符串。

为了便于操作,我添加了 ,<value> 然后显示来自 1 个索引的字符串,

let str =  "1,2,1,2,2,3,4";

let result = str.split(',').reduce(function(p, c){
  if(p.indexOf(c) < 0) {
    p += ',' + c
  }
  return p;
}, '');

console.log(result.substring(1));

使用 ES6,您可以利用扩展运算符:

var myString = "1,2,1,2,2,3,4";
var output = [... new Set(myString)] // [1,2,3,4]

如果您希望输出为字符串:

output.join(); // "1,2,3,4"