字符串章节

JSON对象

json对象:描述数据结构的一种形式,类似于一个容器,可以将若干属性和方法集合一起.
1.通过json对象名打点属性名的方式访问

  1. 下标法

json的遍历Ljson的遍历通常只包含属性的对象0.

  1. 定义:json对象是由键值对
  2. var json={
  3. key1value1
  4. key2value2
  5. }

遍历代码

  1. forvar index in json){
  2. //在for。。。in中不能使用点方法操作属性,只能用下标法
  3. consolelogjson[index]);
  4. }

回调函数

回调函数:一个被当作函数参数的函数
使用场景:第三方函数没有办法直接操作函数(打不开函数体),所以我们需要将自己定义的功能模块按照

四个叠代函数

forEach:
功能:遍历整个数组元素,执行某种操作,
参数:forEach(回调函数);
fun(元素的数组,[元素的下标],[数组名]){
函数体;
}
返回值:无

  1. var arr=[6,5,7,9,8];
  2. function add(x,index,arr){
  3. arr[index]+=10
  4. }
  5. console.log(arr);

map:
功能:遍历整个数组元素,执行某种操作,
参数:forEach(回调函数);
fun(元素的数组,[元素的下标],[数组名]){
函数体;
必须return
}
返回值:返回一个新数组

  1. var arr = [1, 2, 3, 4, 5];
  2. function fun(x, index, arr) {
  3. return arr[index] *= 1 + 0.3;
  4. }
  5. var arr1 = arr.map(fun);
  6. console.log(arr1);

filter:
功能:过滤不要的数据,返回新数组
fun(元素的数组,[元素的下标],[数组名]){
函数体;
按条件return
}
返回值:返回一个新数组

  1. var arr = [1,2,3,4,5];
  2. function fun(x,index,arr){
  3. if(x%2){
  4. return x;
  5. }
  6. }
  7. var arr1 = arr.filter(fun);
  8. console.log(arr1);

reduce
功能:对手的所以元素进行叠加
参数:
fun(元素的数组,[元素的下标],[数组名]){
函数体;
按条件return
}
返回值:返回一个新数组

  1. var a = [1, 2, 3, 4, 5];
  2. function add(total, x, index, arr) {
  3. total += x;
  4. return total;
  5. }
  6. var x = a.reduce(add);
  7. console.log(x);

ascii表

10 Ctrl+回车
13 回车
32 空格
48 0
65 A
97 a

  1. // charAt:
  2. // 功能:返回索引对应的字符
  3. // 参数:charAt(索引)
  4. // 返回值:索引对应的字符
  5. var str = "helloworld";
  6. console.log(str.charAt(0));
  1. // charCodeAt:
  2. // 功能:返回索引对应的字符的acsii码
  3. // 参数:charCodeAt(索引)
  4. // 返回值:索引对应的字符的acsii码
  5. var str1 = "abcd";
  6. console.log(str1.charCodeAt(1));
  7. //length:返回字符串长度
  8. var str2 = "heiheihei";
  9. console.log(str2.length);

各种API

  1. fromCharCode
  2. 功能:返回ASCII码对应的字符
  3. 参数:fromCharCode(ASCII1,[ASCII2....]);
  4. 返回值:ASCII码对应的字符
  5. console.log(String.fromCharCode(97,98,99)); //abc
  1. indexOf("abc")
  2. 查找字符串第一次出现的位置,如果没找到 返回-1
  3. var str = "helloworld";
  4. console.log(str.indexOf("l")); //2
  1. lastIndexOf("abc")
  2. 查找字符串最后一次出现的位置,如果没找到 返回-1
  3. var str = "helloworld";
  4. console.log(str.lastIndexOf("l")); //8
  1. replace(参数1,参数2):
  2. 功能:用参数2替换参数1
  3. 返回值:替换后的字符串
  4. var str = "yueyi de ge bi shi yueyi";
  5. str = str.replace("yueyi","laowang");
  6. console.log(str); //laowang de ge bi shi yueyi
  1. slice:截取字符串的函数
  2. var str = "helloworld";
  3. var str1 = str.slice(2,5);
  4. console.log(str1); //llo
  5. var str1 = str.slice(-5,-2);
  6. console.log(str1); //wor //左开右闭
  1. substring:截取字符串的函数
  2. var str = "helloworld";
  3. var str1 = str.substring(2,5);
  4. console.log(str1); //llo
  1. split(分隔符):将字符串按照分隔符转换成数组
  2. var str = "wo+shi+ge bi de wang shu shu";
  3. var arr = str.split("+");
  4. console.log(arr); //["wo", "shi", "ge bi de wang shu shu"]
  1. console.log("heiHEI".toLowerCase()); //heihei
  2. console.log("heiHEI".toUpperCase()); //HEIHEI

课堂练习

输入一个字符串,统计字符串中有多少个大写字母,小写字母,数字,空格,其他字符·

  1. var str = "12a4 5bc AAB+#$%^";
  2. var bigChar = 0;
  3. var smallChar = 0;
  4. var num = 0;
  5. var space = 0;
  6. var other = 0;
  7. for(var i = 0;i<str.length;i++){
  8. if(str.charAt(i)>='A' && str.charAt(i)<='Z'){
  9. bigChar++;
  10. }else if(str.charAt(i)>='a' && str.charAt(i)<='z'){
  11. smallChar++;
  12. }else if(str.charAt(i)>='0' && str.charAt(i)<='9'){
  13. num++;
  14. }else if(str.charAt(i)==' '){
  15. space++;
  16. }else{
  17. other++;
  18. }
  19. }
  20. console.log(bigChar,smallChar,num,space,other); //3 3 4 2 5