【问题标题】:Get unique string in imacros Javascript在 imacros Javascript 中获取唯一的字符串
【发布时间】:2017-10-03 13:21:18
【问题描述】:

假设我有一个字符串“1,2,1,2,2,3,4”,现在我想从中获得唯一性,这样我的 输出 看起来像 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(/(.)\1+/g, '$1');")
PROMPT {{ag}}

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

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

有什么办法可以解决。

谢谢。

【问题讨论】:

    标签: javascript unique imacros


    【解决方案1】:

    你可以的

    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);

    【讨论】:

    • 你能解释一下箭头函数 (a, b) => (a[b] = true, a)
    • 我使用了箭头函数,(a[b] = true, a) 将对象 a 中的属性 b 设置为 true。 , 只是表示返回值将是对象 a
    • 很好,不知道那种格式,你有没有链接解释了用逗号返回的语句...
    • @marvel308 这就是为什么我一直要求人们添加解释。
    • 还添加了一个更简单的答案,使用集合
    【解决方案2】:

    你可以试试这样的:

    逻辑:

    • 使用分隔符(,)拆分字符串以获取值数组。
    • 循环遍历这个数组。
    • 将字符串连接到空字符串以创建最终字符串。
    • 检查该值是否存在于您的最终字符串中。
      • 如果是,请不要连接。
      • 如果没有,请连接它。
    • 返回这个最终字符串。

    为了便于操作,我添加了,&lt;value&gt;,然后显示来自 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));

    【讨论】:

    • 和我一起工作得很好..非常感谢
    【解决方案3】:

    使用 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"
    

    【讨论】:

    • 如果您有([1,2,1,2,2,3,4]),那么拥有myString 有什么意义?另外,请注意编辑器中的&lt;&gt; 图标
    • 我的错,修复了丢失的变量。虽然我认为这里不需要可运行的 sn-p...
    猜你喜欢
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多