2020-08-09

js中改变字符串内容

1.concat(‘ 字符串’)可以添加内容,内容就为concat里的内容``
2.substr(‘截取的起始位置’, ‘截取几个字符’),可以截取已有的字符串内容

 // 1. concat('字符串1','字符串2'....)
        var str = 'andy';
        var cha = str.concat('add');
        alert(cha)
        console.log(str.concat('red'));
        alert(cha.substr(0,2)) //an

3.替换字符replace(‘ 被替换的字符 ’,‘ 替换进去的字符 ’ ),这个方法只会替换第一个遇到的字符,后面相同的不会替换 , 但是我们可以利用循环的方式将字符串里重复的字符一一替换,利用indexOf

 // 1. 替换字符 replace('被替换的字符', '替换为的字符')  它只会替换第一个字符
        var str = 'andyandy';
        var cha = str.replace('n','b')
        console.log(cha); // abdyabdy
         // 有一个字符串 'abcoefoxyozzopp'  要求把里面所有的 o 替换为 *
        var str1 = 'abcoefoxyozzopp';
        while (str1.indexOf('o') !== -1) {
            str1 = str1.replace('o', '*');
        }
        console.log(str1);

indexOf可以查找字符

 // 字符串对象  根据字符返回位置  str.indexOf('要查找的字符', [起始的位置])
        var str = '改革春风吹满地,春天来了';
        console.log(str.indexOf('春'));    //2
        console.log(str.indexOf('春', 3)); // 从索引号是 3的位置开始往后查找,结果 8

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

字符转换为数组

  // 2. 字符转换为数组 split('分隔符')    前面我们学过 join 把数组转换为字符串
        var str2 = 'red, pink, blue';
        console.log(str2.split(','));
        var str3 = 'red&pink&blue';
        console.log(str3.split('&'));

数组转为字符串

// 数组转换为字符串 
        // 1. toString() 将我们的数组转换为字符串
        var arr = [1, 2, 3];
        console.log(arr.toString()); // 1,2,3
        console.log(arr.join());  //1,2,3
        // 2. join(分隔符) 
        var arr1 = ['green', 'blue', 'pink'];
        console.log(arr1.join()); // green,blue,pink
        console.log(arr1.join('-')); // green-blue-pink
        console.log(arr1.join('&')); // green&blue&pink

简单数据传参 和复杂数据传参

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

简单数据

  // 简单数据类型传参
        function fn(a) {
            a++;
            console.log(a);   // 11
        }
        var x = 10;
        fn(x);
        console.log(x);   //  10
  // 复杂数据类型传参
        function Person(name) {
            this.name = name;
        }

        function f1(x) { // x = p
            console.log(x.name); // 2. 这个输出什么 ?  刘德华   
            x.name = "张学友";
            console.log(x.name); // 3. 这个输出什么 ?   张学友
        }
        var p = new Person("刘德华");
        console.log(p.name); // 1. 这个输出什么 ?   刘德华 
        f1(p);
        console.log(p.name); // 4. 这个输出什么 ?   张学友

添加和删除数组元素

1.push()在后面加
2.unshift ()在前面加
这两个使用完毕后原数组也会改变,返回值为新数组的长度
3.pop()和 shift()都可以删除数组的最后一个元素,这个方法没有参数,且一次只能删除一个元素,pop和shift完毕后返回值为删除的那个元素,原数组也会变化

筛选数组

创建一个新数组,利用循环+判断筛选出数组里符合要求的元素添加到新数组中

// 有一个包含工资的数组[1500, 1200, 2000, 2100, 1800],要求把数组中工资超过2000的删除,剩余的放到新数组里面
        var arr = [1500, 1200, 2000, 2100, 1800];
        var newArr = [];
        var num = 0;
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] < 2000) {
                // newArr[newArr.length] = arr[i];
                newArr.push(arr[i]);
                 num++
            }
        }
        console.log(newArr);
        console.log(num);

翻转数组和数组排序

reserve()

  // 1. 翻转数组
        var arr = ['pink', 'red', 'blue'];
        arr.reverse();
        console.log(arr);  // //['blue','red','pink']

   // 2. 数组排序(冒泡排序)
        var arr1 = [13, 4, 77, 1, 7];
        arr1.sort(function(a, b) {
            //  return a - b; 升序的顺序排列
            return b - a; // 降序的顺序排列
        });
        console.log(arr1); //0: 77
//1: 13
//2: 7
//3: 4
//4: 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值