【问题标题】:Scan for duplicate values in a string and remove them扫描字符串中的重复值并将其删除
【发布时间】:2019-02-05 15:09:15
【问题描述】:

我正在尝试扫描并删除字符串中的所有重复项。

这是一个示例场景:

var str = "Z80.8, Z70.0, Z80.8";

目标是将str 传递给一个函数,并将其返回为“Z80.8, Z70.0”

字符串以逗号分隔。

【问题讨论】:

标签: javascript


【解决方案1】:

使用类似的东西:

str
  .split(',')
  .map(function(s) { return s.trim() })
  .filter(function(v, i, a) { return a.indexOf(v) === i })
  .join(', ');
  1. Split 将通过在每个逗号处拆分字符串来使其成为一个数组。
  2. Map 将删除前导和尾随空格。
  3. 过滤器将删除数组中已经存在的任何元素。
  4. Join 会将数组连接回一个字符串。

【讨论】:

    【解决方案2】:

    使用正则表达式获取每个值,然后使用 Set 删除重复项。

    const data = "Z80.8, Z70.0, Z80.8";
    
    const res = [...new Set(data.match(/\w+\.[0-9]/g))];
    
    console.log(res);

    【讨论】:

      【解决方案3】:

      Javascript 代码拆分", " 上的字符串,然后定义传递给过滤器的匿名函数,该函数接受三个参数,分别代表项目、索引和alitems。如果该项的索引与找到的该项的第一个索引相同,则匿名函数返回 true,否则返回 false。然后用逗号加入 Array 的元素。

      var str = "Z80.8, Z70.0, Z80.8";
      var res = str.split(", ").filter(function(item,index,allItems){
          return index == allItems.indexOf(item);
      }).join(', ');
      
      console.log(res);
      

      结果:

      Z80.8、Z70.0

      【讨论】:

      • 对不起。谢谢。
      【解决方案4】:

      试试这个:

      let str = "Z80.8, Z70.0, Z80.8";
      str = [...new Set(str.split(", "))].join(", ");
      console.log(str);

      【讨论】:

        【解决方案5】:
        let str = "Z80.8, Z70.0, Z80.8";
        let uniq = [...new Set(str.split(", "))].join(", ");
        

        【讨论】:

          【解决方案6】:

          您可以使用split()string 转换为array,然后将其转换为Set,然后再转换为join()

          var str = "Z80.8, Z70.0, Z80.8";
          str = [... new Set(str.split(', '))].join(', ')
          console.log(str);

          【讨论】:

            【解决方案7】:

            我建议将其拆分为一个数组,然后删除重复项。

            var arr = str.replace(" ", "").split(","); var uniqueArray = arr.filter((v, i, arr) => arr.indexOf(v) === i);

            【讨论】:

              猜你喜欢
              • 2016-10-21
              • 1970-01-01
              • 2016-03-24
              • 1970-01-01
              • 2014-05-21
              • 1970-01-01
              • 1970-01-01
              • 2014-11-22
              • 2019-05-17
              相关资源
              最近更新 更多