在字符串中扫描重复的值并删除它们

问题描述 投票:1回答:7

我试图扫描并从一个字符串中删除任何重复。

下面是一个示例场景:

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

我们的目标是通过str到函数,并让它返回为“Z80.8,Z70.0”

该字符串由逗号分隔。

javascript
7个回答
4
投票

使用这样的:

str
  .split(',')
  .map(function(s) { return s.trim() })
  .filter(function(v, i, a) { return a.indexOf(v) === i })
  .join(', ');
  1. 拆分将在每一个逗号分割的字符串,使其数组。
  2. 地图将删除开头和结尾的空格。
  3. 过滤器将删除已经在阵列中的任何元件。
  4. 加入将阵列连接回一个字符串。

1
投票

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

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

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

console.log(res);

1
投票

Javascript代码分割上", "字符串然后定义了传递给过滤匿名功能,即接受表示该项目时,索引和allitems三个参数。如果此项目的指标是一样的发现,项目的第一个索引,否则为false匿名函数返回true。然后加入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


0
投票

尝试这个:

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

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

0
投票

你可以转换string使用arraysplit(),然后将其转换为Set,然后再次join()

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

-1
投票

我建议这个分成数组然后删除重复。

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

© www.soinside.com 2019 - 2024. All rights reserved.