1、随机生成一个五位以内的数,然后输出该数共有多少位,每位分别是什么
var n = parseInt(Math.random() * 100000);
var str = n + "";
console.log(str);
console.log("共有" + str.length + "位");
for (var i = 0; i < str.length; i++) {
console.log(str[i]);
}
2、敏感词过滤
var arr = ["SM", "垃圾"];
var str = "asdasdSMasdasdasdSMsdasdasdSMsadasd垃圾";
for (var i = 0; i < arr.length; i++) {
//遍历每一个敏感词 --去替换
var item = arr[i];
//*所有的字符串方法 都不改变字符串,若不定义新数组接收需重新赋值给该数组
str = str.replaceAll(item, "**");
}
console.log(str);
3、数字字母混合6位验证码
'1234567890qwertyuiopasdfghjklzxcvbnm' 随机在字符串中取六次
var str = "1234567890qwertyuiopasdfghjklzxcvbnm";
var res = "";
for (var i = 0; i < 6; i++) {
var index = parseInt(Math.random() * str.length);
var c = str[index];
res = res + c;
}
console.log(res);
4、 已知字符串“a,a,b,c,c,d”,统计每个字符出现的次数,结果显示 a 2、b 1、c 2、d1。
var str = "a,a,b,c,c,d";
var arr = str.split(","); //将字符串转为数组
//console.log(arr);
var resArr = arr.filter(function(v, i) {
//v表示数组的每一项,i表示数组索引
return arr.indexOf(v) == i;
});
//console.log(resArr);
//让新数组中保留的每一个元素在原字符串中去匹配
for (var i = 0; i < resArr.length; i++) {
var time = 0;//求变量的值 在 str 中出现的次数
for (var j = 0; j < str.length; j++) {
if (resArr[i] == str[j]) {
time++;
}
}
console.log(resArr[i] + " " + time);
}
补:字符串去重的方法
方法1:ES6的filter()方法
方法2:ES6的set() 方法
方法3:for循环+ includes()方法
方法4:for循环 + indexOf()方法
方法5:for循环 + search()方法
总:前两种是ES6新增方法,优点是使用方便,缺点有兼容性。
后三种思路一样,区别在于使用的方法不一样