function unique_char(string) {
return String.prototype.concat(...new Set(string));
}
console.log(unique_char("Hellooooooooooooo"));
谁能帮助我理解如何。concat一个新的集合将返回唯一字符?我以为。concat会添加,为什么有一个传播操作…在新的集合之前?
1)
new Set(string)
由于strings
在JS中是可迭代的,因此Set
将接受字符串作为输入并为您提供一组唯一字符。
2)
String.prototype.concat(...new Set(string)
concat()方法将字符串
arguments
连接到调用字符串并返回一个新字符串。One or more strings
连接到str. - MDN
那么concat
将一个字符一个字符地取append
将它变成一个字符串
看一下下面函数的输出
function unique_char(string) {
const set = new Set(string);
console.log(...set);
return String.prototype.concat(...set);
}
console.log(unique_char("Hellooooooooooooo"));
让我们把这个命令分成几个部分:
new Set(string)
=>这将从字符串中创建一个新的Set,并且每个字符只留下一次...
用于"转换";将Set设置为数组(Set是可迭代的)String.prototype.concat
用于连接扩展操作符返回的数组中的所有字符。