字符串的相关操作以及小案例

根据字符返回位置

根据字符返回位置 str.indexOf(‘要查找的字符’,[起始的位置])

var str = ‘改革春风吹满地,春天来啦’;
console.log(str.indexOf(‘春’)); //2
console.log(str.indexOf(‘春’, 3));// 8 //从索引号是3的位置开始往后找

查找字符串中某个字符串出现的次数小案例

 <script>
        // 查找字符串"abcoefoxyozzopp"中所有o出现的位置以及次数
        // 核心算法:先查找第一个o出现的位置
        // 然后 只要indexOf 返回的结果不是 -1 就会继续往后查找
        // 因为indexOf  只能查找到第一个,所有后面的查找,一定是当前索引加1,从而继续查找
        var str = "abcoefoxyozzopp";
        var obj = ['red', 'blue', 'red', 'yellow', 'red'];
        var index = obj.indexOf('red');
        var num = 0;
        while (index != -1) {
            console.log(index);
            num++;
            index = obj.indexOf('red', index + 1);

        }
        console.log("o出现的次数" + num);

    </script>

在这里插入图片描述

根据位置返回字符
  1. charAt(index)根据位置返回字符

var str = ‘andy’;
console.log(str.charAt(3)); //y
// 遍历所有的字符
for (var i = 0; i < str.length; i++) {
console.log(str.charAt(i)); //a,n,d,y
}

  1. charCodeAt(index) 返回相应索引号的字符ASSCII值 目的:判断用户按下了哪一个键

console.log(str.charCodeAt(0)); //97

  1. str[index] H5新增

console.log(str[0]); //a

统计出现最多的字符和次数小案例

 <script>
        // 有一个对象  来判断是否有该属性  对象['属性名']
        var o = {
            age: 18
        }
        if (o['sex']) {
            console.log('里面有该属性');
        } else {
            console.log('没有该属性');
        }

        // 判断一个字符串'abcoefoxyozzopp'中出现次数最多的字符,并且统计其次数
        // 核心算法:利用chartAt() 遍历这个字符串
        // 遍历对象,得到最大值和该字符串

        var str = 'abcoefoxyozzopp';
        var o = {};
        for (var i = 0; i < str.length; i++) {
            var chart = str.charAt(i);  //chart 是字符串的每一个字符
            if (o[chart]) {     //o[chart]得到的是属性值
                o[chart]++;
            } else {
                o[chart] = 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);
    </script>
concat 连接两个或多个数组

var str = ‘andy’;
console.log(str.concat(‘red’)); //andyred

substr (‘截取的起止位置’,‘截取几个字符’)

var str1 = ‘改革春风吹满地’;
console.log(str1.substr(2, 2)); //春风 //第一个2 是索引号的2 从第几个开始 第二个2是取几个字符

replace 替换字符 (‘被替换的字符’,‘替换为的字符’) 它只会替换第一个字符

var str = ‘andyandy’;
console.log(str.replace(‘a’, ‘b’)); //bndyandy
// 一个字符串’abcoefoxyozzopp’要求把里面的所有o 替换为 *
var str1 = ‘abcoefoxyozzopp’;
while (str1.indexOf(‘o’) != -1) {
str1 = str1.replace(‘o’, '');
}
console.log(str1); //abc
efxyzz*pp

split (‘分隔符’) 字符转换为数组 ( join把数组转换为字符串)

var str2 = ‘red,pink,blue’;
console.log(str2.split(‘,’)); //[‘red’, ‘pink’, ‘blue’]
var str3 = ‘red&pink&blue’;
console.log(str3.split(‘&’)); //[‘red’, ‘pink’, ‘blue’]

简单数据类型 (null 返回的是一个空的对象 object)

ar timer = null;
console.log(typeof timer); //object
// 如果有个变量我们以后打算存错为对象,暂时没有想好放啥,这个时候就给null
// 1.简单数据类型 存放在栈里面 里面直接开辟一个空间存放的是值
// 2.复杂数据类型 首先在栈里面存放地址 十六进制表示 然后这个地址指向堆里面的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值