【发布时间】:2019-02-05 15:09:15
【问题描述】:
我正在尝试扫描并删除字符串中的所有重复项。
这是一个示例场景:
var str = "Z80.8, Z70.0, Z80.8";
目标是将str 传递给一个函数,并将其返回为“Z80.8, Z70.0”
字符串以逗号分隔。
【问题讨论】:
-
所有的值都用逗号隔开吗?
标签: javascript
我正在尝试扫描并删除字符串中的所有重复项。
这是一个示例场景:
var str = "Z80.8, Z70.0, Z80.8";
目标是将str 传递给一个函数,并将其返回为“Z80.8, Z70.0”
字符串以逗号分隔。
【问题讨论】:
标签: javascript
使用类似的东西:
str
.split(',')
.map(function(s) { return s.trim() })
.filter(function(v, i, a) { return a.indexOf(v) === i })
.join(', ');
【讨论】:
使用正则表达式获取每个值,然后使用 Set 删除重复项。
const data = "Z80.8, Z70.0, Z80.8";
const res = [...new Set(data.match(/\w+\.[0-9]/g))];
console.log(res);
【讨论】:
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
【讨论】:
试试这个:
let str = "Z80.8, Z70.0, Z80.8";
str = [...new Set(str.split(", "))].join(", ");
console.log(str);
【讨论】:
let str = "Z80.8, Z70.0, Z80.8";
let uniq = [...new Set(str.split(", "))].join(", ");
【讨论】:
您可以使用split() 将string 转换为array,然后将其转换为Set,然后再转换为join() 它
var str = "Z80.8, Z70.0, Z80.8";
str = [... new Set(str.split(', '))].join(', ')
console.log(str);
【讨论】:
我建议将其拆分为一个数组,然后删除重复项。
var arr = str.replace(" ", "").split(",");
var uniqueArray = arr.filter((v, i, arr) => arr.indexOf(v) === i);
【讨论】: