• JavaScript数组与字符串常用方法总结


    先来一段代码引子:

    var str='hello world';
    alert(str.charAt(1));//通过下标查找值;
    alert(str.indexOf('w',3));//通过值查找字符串下标;没有找到返回-1;有两个参数(第二个参数可以没有,有的话是从这里开始查找);
    alert(str.charCodeAt('w'));//转化unicode编码;
    alert(String.fromCharCode(119));//把Unicode的编码变为具体的值
    alert(str.toUpperCase());//转化为大写
    alert(str.toLowerCase());//转化为小写
    alert(str.split(''));//分隔成数组
    alert(str.substring(0,4));//截取字符串;
    alert(str.match(/d+/g));//查找字符串里的值;
    alert(/d+/g.test(str));//查看字符串是否匹配正则;
    
    var arr=[1,2,3,4,0];var arr1=[8,9];
    alert(arr.join(''));//数组转化成字符串;
    alert(arr.push('5'));//在后面添加;返回值是新数组的长度;
    alert(arr.pop());//在后面删除一个值,返回值是删除的值         
    alert(arr.unshift('0','-1'));//在前面添加,返回值是新数组的长度;   
    alert(arr.shift())//在前面删除一个值,返回值是删除的值         
    alert(arr.sort());//排序
    alert(arr.reverse());//倒序 
    alert(arr.concat(arr1));//连接两个或者多个数组,返回一个新数组,不改变原数组的值
    alert(arr.splice(1,2));//返回值是删除的值
    alert(arr.splice(1,2,'a'));//返回值是删除的值,新数组插入了a; 
    //splice(start,deleteCount,val1,val2,...):从start位置开始删除deleteCount项,并从该位置起插入val1,val2,... 
    alert(arr);

    一、数组:

    push():向数组尾部添加一个或多个元素,返回添加新元素后的数组的长度。——改变原数组

    pop():删除数组最后一个元素,返回删除的该元素。——改变原数组

    unshift():在数组的第一个位置添加元素,并返回添加新元素后的数组长度。——改变原数组

    shift():删除数组的第一个元素,并返回该元素。——改变原数组

    //shift()可以遍历清空一个数组
    var list = [1, 2, 3, 4, 5, 6];
    var item;
    while (item = list.shift()) {
      console.log(item);
    }
    console.log(list);     // []

    valueOf():返回数组的本身。

    //valueOf() 方法可返回 Boolean 对象的原始值。
    var b = new Boolean(0);
    b.valueOf();//false

    indexOf():返回指定元素在数组中出现的位置,如果没有出现则返回-1;还可以接受第二个参数,表示搜索的开始位置。

    toString():返回数组的字符串形式。——不改变原数组

    var arr = [1, 2, 3, [4, 5, 6]];
    arr.toString();    // "1,2,3,4,5,6"

    join():以参数作为分隔符,将所有数组成员组成一个字符串返回。如果不提供参数,默认用逗号分隔。——不改变原数组

    concat():用于多个数组的合并。它将新数组的成员,添加到原数组的尾部,然后返回一个新数组,原数组不变。——不改变原数组

    reverse():用于颠倒数组中元素的顺序,返回改变后的数组。——改变原数组

    sort():对数组成员进行排序,默认是按照字典顺序排序。排序后,原数组将被改变,返回改变后的数组。——改变原数组

    [11, 101].sort();    // [101, 11]
    [10111, 1101, 111].sort();   // [10111, 1101, 111]

       需要特殊注意:sort方法不是按照大小排序,而是按照对应字符串的字典顺序排序。也就是说,数值会被先转成字符串,再按照字典顺序进行比较,所以101排在11的前面。

      如果想让sort方法按照自定义方式排序,可以传入一个函数作为参数,表示按照自定义方法进行排序。该函数本身又接受两个参数,表示进行比较的两个元素。如果返回值大于0,表示第一个元素排在第二个元素后面;其他情况下,都是第一个元素排在第二个元素前面。

      (a-b从小到大;b-a从大到小)

    var arr = [10111, 1101, 111];
    arr.sort(function (a, b) {
      return a - b;
    })
    // [111, 1101, 10111]
    
    var arr1 = [
                  { name: "张三", age: 30 },
                  { name: "李四", age: 24 },
                  { name: "王五", age: 28 }
               ];
    arr1.sort(function (o1, o2) {
      return o1.age - o2.age;
    }) 
    // [
    //   { name: "李四", age: 24 },
    //   { name: "王五", age: 28 },
    //   { name: "张三", age: 30 }
    // ]

    slice():用于截取原数组的一部分,返回一个新数组,原数组不变。——不改变原数组

      用法:slice(start,end)

        (1)它的第一个参数为起始位置(从0开始),第二个参数为终止位置(但该位置的元素本身不包括在内)。如果省略第二个参数,则一直返回到原数组的最后一个成员。

        (2)参数是负数,则表示倒数计算的位置;

        (3)无参数,返回数组本身。

    var arr = ['a', 'b', 'c'];
    arr.slice(1, 2)     // ["b"]  第二个参数自身不包含
    arr.slice()         // ["a", "b", "c"]    无参数返回原数组
    arr.slice(-2)       // ["b", "c"]    参数是负数,则表示倒数计算的位置
    arr.slice(-2, -1)   // ["b"]

    splice():删除原数组的一部分成员,并可以在被删除的位置添加入新的数组成员,返回值是被删除的元素。——改变原数组。

      用法:splice(start,delNum,addElement1,addElement2,...)

        (1)第一个参数是删除的起始位置,第二个参数是被删除的元素个数。如果后面还有更多的参数,则表示这些就是要被插入数组的新元素。

        (2)如果只插入元素,第二个参数可设为0即可。(当不写第三个数的时候,相当于删除功能!当第二个参数为0时,相当于添加功能!)

        (3)如果只有第一个参数,则后面的元素全删除,等同于将原数组在指定位置拆分成两个数组

        (4)删除时,两个参数,第一个是开始位置,第二个是删除长度。插入时,三个参数,第一个是插入位置(在之前插入),第二个是0,第三个是插入的内容。替换时,三个参数,第一个是开始位置,第二个是删除长度,第三个是替换的内容。

    var arr = [1, 1, 1];
    arr.splice(1, 0, 2)     // []    如果只插入元素,第二个参数可以设为0
    console.log(arr)     // [1, 2, 1, 1]
    var arr = [1, 2, 3, 4];
    arr.splice(2)     // [3, 4] 如果只有第一个参数,等同于将原数组在指定位置拆分成两个数组
    console.log(arr)     // [1, 2]

    map():对数组的所有成员依次调用一个函数,根据函数结果返回一个新数组。——不改变原数组

    var numbers = [1, 2, 3];
    numbers.map(function (n) {
      return n + 1;
    });      // [2, 3, 4]
    numbers;      // [1, 2, 3]

    filter():参数是一个函数,所有数组成员依次执行该函数,返回结果为true的成员组成一个新数组返回。——不改变原数组

    var arr = [1, 2, 3, 4, 5]
    arr.filter(function (elem) {
        return (elem > 3);
    });//[4,5]
    console.log(arr)//[1,2,3,4,5]

     二、字符串:

    charAt: 返回字符串的给定位置的字符串。

    concat: 连接2个字符串。原来的不变。

    substring、substr、slice 都可省略第二个参数,表示持续到字符串结束。

    trim:去除两端的空格,不影响之前的字符串。(半角全角空格、中英文空格、tab键一招根除)

    toLowerCase 、toUpperCase:转为大小写,原来的不变。

    indexOf、lastIndexOf:确定一个字符串在另一个字符串中的第一次出现的位置,一个从头部开始,一个从尾部开始。

      它们还可以接受第二个参数,对于indexOf,表示从该位置开始向后匹配;对于lastIndexOf,表示从该位置起向前匹配。

    split:将字符串按字符切割,结果返回一个数组,不改变原字符串。

    var s = "abc";
    s.split('');//为空时,转换为数组["a","b","c"]
    var s = "abcd,ef";
    s.split(',');//["abcd", "ef"

    substring(start开始位置的索引,end结束位置索引) :(1)截取的位置不包含结束位置的字符;(2)只写一个参数表示从开始位置截取到最后;(3)输入负值时将负值变为0,哪个较小作为开始位置。

    var str = "abcde";
    str.substring(2);//cde
    str.substring(1,3);//bc
    str.substring(-2,2);//ab
    str.substring(3,1);//bc

    slice(start开始位置索引,end结束位置索引) :基本和substring相似,区别在参数为负数。

      输入负值时,值与字符串的长度相加,即倒数

    var str='abcdefg';
    str.slice(-1);//=>str.slice(6) // g
    str.slice(1,-2); //=>str.slice(1,5)  //bcde
    str.slice(-2,-1);//=>str.slice(5,6)  //f
    var str='abcdefg';
    str.slice(-22);//abcdefg,负数绝对值大于字符串的长度时变为 0,=>str.substring(0) 
    str.slice(-22,-10);//为空
    str.slice(9);//为空
    var str='abcdefg';
    str.slice(-2,-3);//负数的时候倒数第2个到倒数第3个,为空

    substr(start开始位置索引,end需要返回的字符个数):

    var str='abcdefg'; 
    str.substr(1) //bcdefg,第二个参数无的话,就从索引处返回后面的全部字符
    str.substr(1,1) //b,第二个参数是要返回的字符个数

    输入负值时 start参数与字符串的长度相加 ,end为负时参数变为0

    var str='abcdefg';
    str.substr(-1);  //=>str.substr(6) //g
    str.substr(-2,-3); //end为负时变为0,即0个元素 //''
    str.substr(-2,3);//fg

    match() :可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配

    search():返回与正则表达式查找内容匹配的第一个字符串的位置。

    replace(): 用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配

    、数字:

    toFixed(): 保留小数,结果是字符串类型。

    var a = 1.1262;
    a.toFixed(2);//1.13,按四舍五入计算,结果为字符串类型

    parseInt 和 parseFloat:字符串转数字类型

    数字转字符 toString or 数字 + ""

  • 相关阅读:
    游戏开发系统功能(9)
    游戏开发创建游戏世界(8)
    游戏开发沟通和开会技巧(7)
    游戏开发策划工作(6)
    游戏开发了解测试工作(4)
    Django:学习笔记(9)——用户身份认证
    Django:学习笔记(8)——视图
    Django:学习笔记(7)——模型进阶
    Django:学习笔记(6)——模型
    Django:学习笔记(5)——会话
  • 原文地址:https://www.cnblogs.com/goloving/p/7241610.html
Copyright © 2020-2023  润新知