扫描字符串中的重复值并将其删除

时间:2019-02-05 15:09:15

标签: javascript

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

这是一个示例方案:

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

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

该字符串用逗号分隔。

7 个答案:

答案 0 :(得分:4)

使用类似的东西:

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

答案 1 :(得分:1)

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

const data = "Z80.8, Z70.0, Z80.8";

const res = [...new Set(data.match(/\w+\.[0-9]/g))];

console.log(res);

答案 2 :(得分:1)

Javascript代码在", "上拆分字符串,然后定义一个传递给filter的匿名函数,该函数带有表示项目,索引和项目的三个参数。如果该项目的索引与找到的该项目的第一个索引相同,则匿名函数返回true,否则返回false。然后以逗号加入Arrray的元素。

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

答案 3 :(得分:0)

尝试一下:

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

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

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

答案 6 :(得分:-1)

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

import StringIO import time from PIL import Image as PilImage img = PilImage.open('222.jpg') originalThumbStr = StringIO.StringIO() now = time.time() img.convert('RGBA').save(originalThumbStr, 'webp', quality=75) print(time.time() - now)