数组对象和字符串对象的各种方法及代码实操(实操带有解释)

数组方法

一.添加或删除数组元素

方法如下:
在这里插入图片描述

示例代码:

//方法名:push(参数1...) 在末尾添加一个或多个元素
        var arr=['a','b','c','d']
        console.log(arr.push('e'))   //返回数组新长度
        console.log(arr)             //输出修改后的数组
        console.log('=========================')

        //方法名:unshift(参数1...)  在开头添加一个或多个元素
        var arr1=['1','2','3','4','5']
        console.log(arr1.unshift('-1','0'))  //返回数组新长度
        console.log(arr1)                    //输出修改后的数组
        console.log('=========================')

        //方法名:pop()   删除数组的最后一个元素
        var arr2=['a','b','c','d']
        console.log(arr2.pop())    //返回被删除的元素
        console.log(arr2)          //输出修改后的数组
        console.log('=========================')

        //方法名:shift()   删除数组的第一个元素
        var arr3=['1','2','3','4','5']
        console.log(arr3.shift())  //返回被删除的元素
        console.log(arr3)          //输出修改后的数组

输出结果:
在这里插入图片描述
注意:push()和unshift()方法的返回值是新数组的长度,而pop()和shift()方法返回的是移出的数组元素

案例:筛选数组

​       要求:要求在包含工资的数组中,剔除工资达到2000或以上的数据,把小于2000的数重新放到新的数组里面。

示例代码:

var arr=[1500,1200,2000,2100,1800];
        var newArr=[];
        for(var i=0;i<arr.length;i++){
            if(arr[i]<2000){
                newArr.push(arr[i]);
            }
        }
        console.log(newArr)

输出结果:
在这里插入图片描述

二.数组排序

排序方法如下:
在这里插入图片描述

示例代码:

 var arr4=[1,2,3,4,5,6]
        console.log(arr4.reverse())     //反转后输出结果
        console.log(arr4)
        // console.log('=========================')


        /*sort有两种情况:
            1.不传参数
            2.传参数:参数是用来指定按某种顺序进行排列的函数
            即a和b是两个将要比较的元素*/
        var arr5=[1,5,35,92,28,73,7]
        //1.不传参数的情况,按照字符编码的顺序进行排序
        console.log(arr5.sort())
        //2.传参数
        arr5.sort(function(a,b){
            return a-b;  //升序
            // return b-a;  //降序
        });
        console.log(arr5);

输出结果:
在这里插入图片描述

注意: (1)  reverse(和sort0方法的返回值是排序后的数组。
            (2) sort 如果调用该方法时没有使用参数,按照字符编码的顺序进行排序。

三.数组索引

检索方法如下:
在这里插入图片描述

示例代码:

//方法:indexOf()
        var arr=['a','b','c','d','a','f']
        console.log(arr.indexOf('a'));    //查找'a'返回下标,若有重复返回第一个'a'的下标
        console.log(arr.indexOf('a',1));  //查找'a'从下标为1的字符开始
        console.log(arr.indexOf('9'));    //查找9,没有返回-1
         // // console.log('=========================')
         //方法:lastIndexOf()
         var arr1=['a','b','c','d','a','f']
         console.log(arr.lastIndexOf('a'));   //返回最后一个'a'的下标

输出结果:
在这里插入图片描述

案例:数组去重

​       要求:要求在一组数据中,去除重复的元素。

示例代码:

function zycw(arr){
            var newArr=[];
            for(var i=0;i<arr.length;i++){
                if(newArr.indexOf(arr[i])==-1){  //把数组arr中每一个元素都在数组newArr中检索如果没有就会返回-1
                    newArr.push(arr[i]);         //然后就在数组newArr末尾添加这个元素
                }
            }
            return newArr;
        }
        var res=zycw([1,2,3,4,1,3])     //定义一个res接收返回值
        console.log(res);

输出结果:
在这里插入图片描述

四.数组转换为字符串

方法如下:
在这里插入图片描述

示例代码:

//1.toString()方法
    var arr=['a','b','c','d']
    console.log(arr.toString());
    console.log('======================')

    //2.join('分隔符')方法
    //参数可选:指定一个字符串来分隔数组的每个元素
    //如果需要,将分隔符转换为字符串()小括号里面填写的是指定的分隔符
    //如果省略,数组元素用逗号(,)分隔
    //如果 separator 是空字符串 (") ,则所有元素之间都没有任何字符
    console.log(arr.join());    //输出结果:a,b,c,d
    console.log(arr.join(''));   //输出结果:abcd
    console.log(arr.join('-'));    //输出结果:a-b-c-d

输出结果:
在这里插入图片描述

五.其他方法

方法如下:
在这里插入图片描述
示例代码:

//1.fill()    //填充
        var arr1=[12,4,5,67,7]
        console.log(arr1.fill(6,2))   //固定值为6,从下标为2开始
        console.log('=========================')

        //2.splice()  //数组删除
        var arr2=['张三','李四','王五','小明','小刚','小王']
        // console.log(arr2.splice(1,2))   //从下标为1开始删除2个
        // console.log(arr2)
        console.log(arr2.splice(2,0,'小红'))   //输出删除的元素(从下标为2开始删除0个,然后插入‘小红’(可添加多个))
        console.log(arr2)                     //输出插入后的结果
        console.log('=========================')

        //3.slice()   //数组截取
        var arr3=['张三','李四','王五','小明','小刚','小王']
        //console.log(arr3.slice(0,3))  //从下标为0开始截取3个
        console.log(arr3.slice(1,5))     //从下标为1开始截取4个
        console.log(arr3.slice(2,3))      //从下标为2开始截取1个
        console.log('=========================')

        //4.concat()  //链接多个数组(可连接多个)
        const z1=['a','b','c']
        const z2=[1,2,3]
        const a1=z1.concat(z2)
        console.log(a1)

输出结果:
在这里插入图片描述

字符串方法

一.字符串对象的使用

​ 字符串对象使用new String()来创建,在String构造函数中传入字符串,这样就会在返回的字符串对象中保存这个字符串。

代码语法如下

var str=new String('apple');     //创建字符串对象
console.log(str)                 //输出结果:String{'apple'}
console.log(str.length)          //获取字符串长度,输出结果:5
二.根据字符返回位置

字符串对象提供了用于检索元素的属性和方法,字符串对象的常用属性和方法如下
在这里插入图片描述

示例代码:

var str='Hello World';
console.log(str.indexOf('o'));      //获取'o'在字符串中首次出现的位置,返回结果:4     
console.log(str.lastIndexOf('o'));   //获取'o'在字符串中最后出现的位置,返回结果:7

注意:indexOf和lastlndexOf都区分大小写

三.根据位置返回字符

方法如下:
在这里插入图片描述

示例代码:

 var str='Apple';
 console.log(str.charAt(3));          //返回字符串中下标为3的字符,输出结果:1
 console.log(str.charCodeAt(0));      //返回字符串中下标为0的字符的ASCII码值,输出结果:65(字符A的ASCII码为65)
 console.log(str[0]);                 //返回字符串中下标为0的字符,输出结果:A

案例:统计字符串’Apple’中出现最多的字符和次数
示例代码:

 var str='Apple';
        var b={};
        for (var i=0;i<str.length;i++){
                var chars=str.charAt(i);    //利用chars保存字符串中的每一个字符
                if(b[chars]==true){       //判断是否取到了当前字符串
                        b[chars]++;    //如果获取到了当前字符串,即对应的属性值+1
                }
                else{
                        b[chars]=1;     //如果没有取到就说明只有一个
                }
        }
        console.log(b);
        var max=0;             //定义一个max保存出现次数最大值
        var ch='';              //定义一个ch保存出现次数最多的字符
        for(var k in b){
                if(b[k]>max){
                        max=b[k];
                        ch=k;
                }
        }
        console.log('出现最多的字符是:'+ch+',共出现了:'+max+'次');

输出结果:
在这里插入图片描述

四.字符串操作方法

       字符串对象提供了一些用于截取字符串、连接字符串、替换字符串的属性和方法。字符串对象的常用属性和方法如下:
在这里插入图片描述

示例代码:

var str='HelloWorld';
        console.log(str.concat('真的','666','!'));    //在字符串末尾拼接字符(可拼接多个),输出结果:HelloWorld真的666!
        console.log(str.slice(4,7));                  //截取从下标为4开始到下标为7范围内的内容,输出结果:oWo
        console.log(str.substring(5));                //截取从下标为5开始到最后的所有内容,输出结果:World
        console.log(str.substring(5,7));              //截取从下标为5开始到下标为7范围内的内容,输出结果:Wo
        console.log(str.substr(5,3));                 //截取从下标为5开始到3长度的子字符串,输出结果:Wor
        console.log(str.toLocaleLowerCase());         //将字符串转换为小写,输出结果:HelloWorld
        console.log(str.toLocaleUpperCase());         //将字符串转换为大写,输出结果:HELLOWORLD
        console.log(str.split('l'));                  //将字符串从字符'l'处切割,输出结果:['He', '', 'oWor', 'd']
        console.log(str.split('l',3));                //将字符串从字符'l'处切割,限制最多切割3次,输出结果:['He', '', 'oWor']
        console.log(str.replace('World','Zzz'));      //替换字符串,将字符串'World'替换为'Zzz',输出结果:HelloZzz

案例1:判断用户名是否合法

​ ​ ​ ​ ​ ​ ​ ​ 要求:用户名长度在3~10范围内,不能出现敏感词admin的任何大小写形式。
示例代码:

var name=prompt('请输入用户名:');
     if(name.length<3||name.length>10){
             alert('用户名长度必须在3~10之间。');
     }
     else if(name.toLocaleLowerCase().indexOf('admin')!=-1){
             alert('用户名中不能包含敏感词:admin。');
     }
     else{
             alert('恭喜您,该用户名可以使用。');
     }

案例2:根据url = ‘http://www.martinhan.com/login?name=zs&age=18’;

要求最后的输出结果为{name:zs,age:18}
            示例代码:

  var url = 'http://www.martinhan.com/login?name=zs&age=18';
        function getParams(url){
                // 1. 首先把网址分为2部分用 ? 分割
                // 2. 得到 ?+ 1 的索位置
                var index=url.indexOf('?')+1;
                // 3. 得到?后面的字符串
                var params = url.substr(index);
                console.log(params);    // name=zs&age=18
                // 4.把得到的这串字符,继续用 & 分隔开
                var arr = params.split('&');
                var o= {};
                // 5.把数组里面的每一项,继续用 = 分隔
                for (var i = 0; i < arr.length; i++) {
                        var newArr = arr[i].split('=');
                        o[newArr[0]] = newArr[1];   // 完成赋值操作
                }
                return o;
        }
        console.log(getParams(url));
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值