因为有你,山河璀璨,星月长明。
实现对于字符串去重的方法有很多,今天我们来看一看利用对象实现去重操作,因为对象的键是不会重复的,利用这一特性,可以达到字符串去重效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
<script>
var str = 'aabbccddaabbccdd'
//定义一个对象
var obj = {}
console.log(obj);
//遍历字符串
for (i = 0; i < str.length; i++) {
obj[str[i]] = 0 //将字符串中的每个字符作为对象的键,值为0
//因为是对象,所以重复的不会放进去
}
//再次遍历字符串,如果一个键出现了多次,就让键的值加一,从而达到统计个数
for (i = 0; i < str.length; i++) {
obj[str[i]]++
}
console.log(obj);
</script>
</html>
另一种字符串统计每个字符的方法:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
<script>
//统计字符串中每个字符的个数
//字符串转为数组输出
//遍历数组的每一项,字符串不能增删改查,所以用数组
var str = 'abcdefhsaabcdxabcd'
//先用字符串方法split将字符串转为数组
var arr = str.split('')
console.log(arr);
//num用来计数
var num = 1
for (i = 0; i < arr.length; i++) {
//把第i个值与其他的值个值比较
for (var j = i + 1; j < arr.length; j++) {
//如果相等
if (arr[i] == arr[j]) {
num++
//就在此基础上,删除这个值,同时为了防止数组塌陷,把j连续--
arr.splice(j, 1)
j--
}
}
console.log(arr[i] + num);
num = 1
}
</script>
</html>