最近收集了些关于字符串数组去重,找重复数的方法,记录于下,分享给大家:
字符串去重,
思路:
先对原来的字符串拆分为数组,然后使用数组方法sort()排序,然后拼接join(),
使用正则方法进行判断,替换重复数:
var str = "safsdfa4353asdf";
var arr = str.split("");
var arr1 = arr.sort();
var str1 = arr1.join("");
// 以上可以改写为:str.split("").sort().join("")
str = str1.replace(/(.).*\1/g, "$1");
console.log(str);
数组去重
思路:
主要使用了indexOf()方法查询,代码如下
var arr = ['abc','abcd','sss','2','d','t','2','ss','f','22','d'];
//定义一个新的数组
var s = [];
//遍历数组
for(var i = 0;i<arr.length;i++){
if(s.indexOf(arr[i]) == -1){ //判断在s数组中是否存在,不存在则push到s 数组中
s.push(arr[i]);
}
}
console.log(s);
另外,关于正则,还有一个查找出现最多次的验证匹配,代码如下:
var str = "aaabdfadlfadlsldflsdf";
var arr = str.split("");
var tmp = arr.sort(); // [a,a,a,a,b,b,d,d,f,l,s,s,s];
str = tmp.join("");// 需写引号,否则会含有","
var str2 = str.match(/(\w)\1*/g); // 正则匹配,注意贪婪匹配
str = str2.sort(function(a,b) {
return a.length< b.length;
} )
console.log(str); // ["aaaaa", "ddddd", "ffff", "llll", "ss", "b"];
出现最多的数:str[0][0],出现次数:str[0].length
小结:
正则验证,当我们对字符串做查询验证替换的时候,很有用。
而关于数组,查询是否重复,或者替换重复项的时候,除了循环,还有内置方法,使用得当能带来意想不到的效果。
7-11 记录于教室。
(完)