• js数组与字符串处理 slice、splice、substring、substr、push、pop、shift、reverse、sort、join、split


    数组

     方法

    1.在数组末尾添加、删除元素

    push()方法可以接收任意数量的参数,把它们逐个添加到数组的末尾,并返回修改后数组的长度。改变原数组

    pop()方法则从数组末尾移除最后一个元素,减少数组的 length 值,然后返回移除的元素。改变原数组

    2.在数组前端添加、删除元素

    unshift() 方法从数组前端添加一个或多个元素,返回数组的长度。改变原数组

    shift() 方法从数组前端移除一个元素,返回删除元素。改变原数组

     3. 重排序方法

    reverse()        // 返回一个逆向排序的新数组, 改变原数组

    sort()      //返回一个从小到大排序的新数组 , 改变原数组

    注意:sort排序默认是按照数组元素的ASCII码的大小排序,如果想用sort完成元素数值大小的排序需要调用函数

    //数组升序排列
    function compare(m, n) {
        return m– n; //想要降序排列此处换为 n – m;
    }
    arr.sort(compare);

    1.基于当前数组元素/数组,连接新的元素/数组,形成一个新的数组

      concat() 方法返回新数组,不改变原数组

    2.获取、截取、插入、替换元素

    slice 基于当前数组获取指定区域元素,并返回一个新数组,不改变原数组

    //slice(a,b)   获取范围是[a b)
    var arr = Array(2,5,8,10,3,28);
            var a = arr.slice(1,2);                //从下标1开始获取,到下标2结束,不包括下标2 [1 2).
    
            document.writeln(arr);                //元素不变
        document.writeln(a);                //5

    splice   数组值的截取、插入、替换、删除,会改变原数组

    数组值的截取会改变原数组,返回截取元素的数组

    //splice(a,b)  截取范围是从a按开始,截取长度为b
        var arr = Array(2,5,8,10,3,28);
        var a = arr.splice(2,3);            //从下标2开始,截取3个元素
        document.writeln(arr);                //2,5,28
        document.writeln(a);                //8,10,3

    插入元素,无返回值,改变原数组

    //splice   插入
    var arr = Array(2,5,8,10,3,28);
    var a = arr.splice(2,0,"a","b");    //从下标2开始,截取0个元素,并插入新元素
        document.writeln(arr);            //2,5,a,b,8,10,3,28 
                document.writeln(a);                //无返回值

    替换元素,返回被替换元素,改变原数组

    //splice   替换
    var arr = Array(2,5,8,10,3,28);
                var a = arr.splice(2,1,"a");        //从下标2开始,截取1个元素,并插入一个新元素(数组元素替换)
                document.writeln(arr);                //2,5,a,10,3,28 
                document.writeln(a);                //8

    删除元素

    //splice   删除
    var arr = Array(2,5,8,10,3,28);
    var a = arr.splice(2,1);        //从下标2开始,截取1个元素,并插入一个新元素(数组元素替换)
    document.writeln(arr);                //2,5,10,3,28 
    document.writeln(a);                //8

     3.定义数组元素间的分隔符

    join   使用指定的分隔符把数组中的数据连接成字符串,返回新字符串,不改变原数组元素

    Join()
    var arr = Array(2,5,8,10,3,28);
        var w = arr.join("、");
        document.writeln(w);            //2、5、8、10、3、28
    document.writeln(arr);        //2,5,8,10,3,28

    字符串string

    1. 字符的获取方法
    str.charAt   str.charCodeAt   String.fromCharCode
    str.charAt   str.charCodeAt   String.fromCharCode
    var str = "0123456";
    console.log(str.charAt(3)) ;    //获取下标为3的字符      3
    console.log(str[3]) ;    //获取下标为3的字符      3
    console.log(str.charCodeAt(3)) ;   //获取下标为3的字符的编码(ASCII码)51
    console.log(String.fromCharCode(97)) ; //ASCII编码转换成字符    a
    var str = String.fromCharCode(98,99); 
    console.log(str);                                    //bc

    该方法是 String 的静态方法,所以用String调用,        如:var str = String.fromCharCode(98,99); 可传入多个参数

    2.连接字符串  str.concat()  

    str.concat()  也可以用+连接
    var str1 = "hello";
        var str2 = str1.concat(" world");
        console.log(str1);            //hello        
        console.log(str2);            //hello word

    3.字符串的查找方法 

    str.indexOf( )  查找字符串第一次出现的位置,如果没找到则返回-1

    str.indexOf( )
    var str = "abcdabcd";
        var subStr = "bcd";
        var index = str.indexOf(subStr); 
    console.log(index);                        // 1

    str.lastIndexOf( )  查找字符串最后一次出现的位置, 如果没找到则返回-1

    str.lastindexOf( )
    var str = "abcdabcd";
    var index = str.lastIndexOf(“abc”);        // 4

     4.正则匹配

    str.search() 正则匹配 (返回第一次出现的位置)

    str.search()  
    var str = "Abcdabcd"; 
    var index = str.search(/abc/gi);         //index = 4

    注: g表示进行全局匹配,i表示匹配的时候忽略大小写 

    5.str.replace() 替换字符串 

    str.replace()  
    var str = "how are  you!"; 
    var newStr = str.replace("are", "old are"); 
    console.log(str);            //how are  you!
    console.log(newStr);        //how old are  you!

    这里的替换只能执行一次,不能够进行全局匹配,如果需要全局匹配,则应使用正则表达式: str.replace(/are/gi, "old are")

    字符串的常用函数(重要)

    substring(start,end); //截取字符串 范围是[start, end)

    substr(a,b)   截取字符串,范围是从下表为a的字符开始,截取长度为b

    substr()  
    var  str =  'Hello world!';
    console.log(str.substring(2,5));        //llo
    console.log(str);            //Hello world!
    console.log(str.substr(2,5));        //llo w

    注: 如果只有一个参数, 则表示到字符串最后


    split(separator, howmany)根据分隔符、拆分成数组

    separator(字符串或正则表达式)

    howmany(可以指定返回的数组的最大长度, 可以省略)

    split()  根据分隔符、拆分成数组
        var  str =  'Hello*world*!';
        var str1 = str.split(/*/);
        console.log(str);        //Hello*world*!
        console.log(str1);        //["Hello", "world", "!"]
        var  str =  'Hello*world*!';
        var str1 = str.split('');
        console.log(str1);        //["H", "e", "l", "l", "o", "*", "w", "o", "r", "l", "d", "*", "!"]

    【注】如果空字符串(“”)用作separator,那么stringObject中的每个字符之间都会被分割。 

    toLowerCase() 方法用于把字符串转换成小写 

    toUpperCase() 方法用于把字符串转换成大写

  • 相关阅读:
    SP是什么?CP是什么?SP与CP有什么区别?
    SP与CP将走向互补融合
    SP与CP分工
    Asynchronous Socket 顺序
    Asynchronous Client Socket Example
    Synchronous Server Socket Example
    web应用程序根目录
    简单socket服务(一)
    Asynchronous Server Socket Example
    Socket连接不上的问题
  • 原文地址:https://www.cnblogs.com/SPHmomo/p/6913280.html
Copyright © 2020-2023  润新知