前端开发JS算法:去重操作#yyds干货盘点#_字符串

前言

前端开发里面去重是一个比较常见的算法,简而言之就是把一个集合中重复的项目去掉只保留不重复的。下面是一个JS最简单的处理,分享出来供查找使用。


基本算法

遍历目标数组,把目标数组中的元素放入新的数组中,放入前检查是否已经存在,如果已经存在则不再放入。


基础函数


1.数组去重

例如:[1,4,6,7,9,6,4,5]去重后的结果为:[1,4,6,7,9,5]

代码:

function uniqueArray(arr){
var res = [];
for(var i in arr){// 遍历数组元素
if(res.indexOf(arr[i]) == -1){
res.push(arr[i]);
}
}
return res;
}
// 输出结果uniqueArray([1,4,6,7,9,6,4,5]);

注意:indexOf是ES5新增加函数,用来获取数组中元素的位置(下标),兼容性IE8+。




2.字符串去重

例如:"14679645"去重后的结果为:"146795"

代码:

function uniqueString(str){
var res = "";
for(var i in str){
if(res.indexOf(str.charAt(i)) == -1){
res+=str.charAt(i);
}
}
// 返回去重后的字符串
return res;
}
// 输出结果uniqueString("14679645");


// 字符串转换成数组
function uniqueString(str){
var arr = str.slice("");
var res = uniqueArray(arr);
return res.join("");
}
//输出结果uniqueString("14679645");


3.数字去重

例如:14679645去重后的结果为:146795

延续上面的思路就比较简单了,先把数字转换成字符串,再做处理。

代码:

function uniqueNumber(num){
var str = num + "";
var res = uniqueString(str);
return parseInt(res);
}
// 输出结果uniqueNumber(14679645);


结尾

通过上文可以知道关于前端开发过程中的去重的算法,常用的去重算法通过本文内容就可涵盖,方便使用。