javascript - 删除字符串中的重复字符并制作唯一的字符串

标签 javascript

我写了一个代码,它工作正常,但是有没有更简单、更方便的方法来使用 javascript RegExp 对象或任何其他方式来实现它?

function removeDuplicateChar(str) {
	var temp = [], j = 0;
	var arr = str.split("");
	arr.sort();

	for(var i = 0; i < arr.length-1; i++) {
		if(arr[i] != arr[i+1]) {
			temp[j++] = arr[i];
		}
	}
	temp[j++] = arr[arr.length-1];

	for(var i = 0; i < j; i++) {
		arr[i] = temp[i];
	}

	return arr.join("").substring(0,j);
}
console.log(removeDuplicateChar("Rasikawef dfv dd"));

最佳答案

你喜欢one liner吗?最少的代码可以非常高效。比较以下内容:

使用集合和列表理解:

const remDup= e => [...new Set(e)].sort().join("");
console.log(remDup("Rasikawef dfv dd"))

减少:

const remDup= s=> s.split("").sort().reduce((a,b)=>(a[a.length-1]!=b)?(a+b):a,"")
console.log(remDup("Rasikawef dfv dd"))

带过滤器:

const remDup= s=> s.split("").filter((e,i,f)=>f.indexOf(e)==i).sort().join("")
console.log(remDup("Rasikawef dfv dd"))

附 map :

const remDup= s=> s.split("").map((c,i,o)=>(o.indexOf(c)==i)?c:"").sort().join("")
console.log(remDup("Rasikawef dfv dd"))

关于javascript - 删除字符串中的重复字符并制作唯一的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50649912/

相关文章:

javascript - jqPlot 饼图无法正确渲染

javascript - 如何构建数组, "Incorrect range height"错误

javascript - jquery加载隐藏内容

javascript - 根据 redux 状态中的另一个值解构对象

javascript - jQuery post 和 OnClick 问题

javascript - scope.$watch 在 Angular Directive(指令)中不起作用

javascript - `arguments` JavaScript 中的对象

javascript - jQuery:从多个字段中获取值并显示在文本字段中

javascript - 如何为 Bootstrap 复选框徽章分配唯一 ID?

javascript - 使用捕获组 $1 访问对象的键值