- 根据字符返回位置
// 1. 根据字符返回位置
// 查找字符串中某个出现的位置及次数
// 核心算法:先查找第一个o的位置
// 只要indexOf返回的结果不是-1 就继续往后查找
// 后面的查找利用第二个参数 当前索引加1 从而继续查找
var str = "abcoefoxyozzopp";
var index = str.indexOf("o");
var num = 0;
// console.log(index);
while (index !== -1) {
console.log(index);
num++;
index = str.indexOf("o", index + 1);
}
console.log("o出现的次数是:" + num);
课后作业
var arr = ["red", "blue", "yellow", "green", "red", "pink", "red"];
var index = arr.indexOf("red");
var num1 = 0;
while (index !== -1) {
console.log(index);
num1++;
index = arr.indexOf("red", index + 1);
}
console.log("red出现的次数是:" + num1);
- 根据位置返回字符
// (1) charAt(index) 根据位置返回字符
var str = "andy";
console.log(str.charAt(2));
// 遍历所有的字符
for (var i = 0; i < str.length; i++) {
console.log(str.charAt(i));
}
// (2) charCodeAt(index) 返回相应索引号的字符ASCII值 目的 判断用户按下了哪个键
console.log(str.charCodeAt(0));
// (3) str[index] H5新增的
console.log(str[0]);
- 判断字符串里面出现最多的字符,并统计其次数
- 利用chatAt() 遍历这个字符串
- 把每个字符都存储给对象,如是对象没有该属性,就为1,如果存在该属性,就+1
- 遍历对象,得到最大值和该字符
/* 一个小思路 以这个方式来判断里面是否有该属性 对象['属性名']
var a = {
age: 10,
};
if (a["age"]) {
console.log("里面有该属性");
} else {
console.log("里面没有该属性");
} */
var str2 = "abcoefoxyozzopp";
var o = {};
for (var i = 0; i < str2.length; i++) {
var chars = str2.charAt(i); // chars是字符串里面的每一个字符
if (o[chars]) { // o[chars]得到的是属性值
o[chars]++;
} else {
o[chars] = 1;
}
}
console.log(o);
// 遍历数组对象
var max = 0;
var ch = "";
for (var k in o) {
// k 里面是属性名
// o[k] 得到的是属性值
if (o[k] > max) {
max = o[k];
ch = k;
}
}
console.log(max);
console.log("最多的字符是" + ch);
- 字符串操作方法
substr("截取的位置","截取几个字符")
// substr("截取的位置","截取几个字符")
var str3 = "改革春风吹满地";
console.log(str3.substr(2, 3));
替换字符replace("被替换的字符","替换为的字符") // 只会替换第一个字符
// 替换字符replace("被替换的字符","替换为的字符") // 只会替换第一个字符
var str4 = "andy";
console.log(str4.replace("a", "l"));
// 实操 "abcoefoxyozzopp" 中所有的o替换为*
var str5 = "abcoefoxyozzopp";
while (str5.indexOf("o") !== -1) {
str5 = str5.replace("o", "*");
}
console.log(str5);
字符转换为数组 split("分隔符")
// 字符转换为数组 split("分隔符")
var str6 = "nicey,pink,red";
console.log(str6.split(","));
var str7 = "nicey&pink&red";
console.log(str7.split("&"));
课后作业
var str8 = "abaasdffggghhjjkkgfddsssss3444343";
// 1.字符长度
console.log(str8.length);
// 2.取出指定位置字符
console.log(str8.substr(0, 1));
console.log(str8.substr(3, 1));
console.log(str8.substr(5, 1));
console.log(str8.substr(9, 1));
// 3.查找指定字符是否存在 indexOf 为-1则是否
console.log(str8.indexOf("a"));
// 4.替换指定字符
console.log(str8.replace("g", "22"));
// 5.截取字符
console.log(str8.substr(0, 5));
// 6.找出字符串中出现次数最多的字符后出现的次数
var num = 0;
var o8 = {};
var index8 = str8.indexOf("o");
for (var i = 0; i < str8.length; i++) {
var chars2 = str8.charAt(i);
if (o8[chars2]) {
o8[chars2]++;
} else {
o8[chars2] = 1;
}
}
console.log(o8);
var ch = "";
for (var k in o8) {
if (o8[k] > num) {
num = o8[k];
ch8 = k;
}
}
console.log(num);
console.log("最多的字符是" + ch8);