美文网首页
JS数组字符串方法整理

JS数组字符串方法整理

作者: majun00 | 来源:发表于2018-03-20 15:59 被阅读0次

    回顾数组字符串方法

    数组对象方法

    转换数组(将数组转换成一些其他形式):

    1. valueOf() 返回数组对象本身,和直接输出数组对象是一样的

    2. toString() 把数组以逗号相连转为字符串

    var arr = [1, 2, 3, 4, 5];
    console.log(arr.toString());
    
    1. join() 用指定分隔符连接数组元素转为字符串
    var arr = [1, 2, 3, 4, 5];
    console.log(arr.join());
    console.log(arr.join("-"));
    console.log(arr.join(""));
    

    注: 不传入参数即表示默认用逗号连接转为字符串

    数组检测: 用于判断是否是数组类型

    1. instanceof 关键字 注意它不是方法没有(),并且也适用于其他判断
    var arr = [1,2,3,4,5];
    console.log(arr instanceof Array); //true
    console.log("a" instanceof Array); //false
    
    1. Array.isArray()
    var arr = [1,2,3,4,5];
    console.log(Array.isArray(arr));//true
    console.log(Array.isArray("a"));//false
    

    增删方法:

    1. push() 从后面添加元素,返回新数组的长度
    var arr = [11,22,33,44,55];
    console.log(arr.push(99));
    
    1. pop() 从后面删除元素,返回被删除的元素
    var arr = [11,22,33,44,55];
    console.log(arr.pop());
    
    1. shift() 从前面删除元素,返回被删除的元素
    var arr = [11,22,33,44,55];
    console.log(arr.shift());
    
    1. unshift() 从前面添加元素,返回新数组的长度
    var arr = [11,22,33,44,55];
    console.log(arr.unshift(0));
    

    迭代方法:

    1. filter 需要传入一个回调函数,该回调函数需具有三个参数,这个回调函数由js内部调用,filter方法会遍历数组,每次遍历到一个元素就会执行回调函数一次,第一个参数为当前元素,第二个参数为当前元素的索引,第三个参数为当前数组
    var arr = [1500, 1200, 2000, 2100, 1800];
    var newArr = arr.filter(function (element, index, array) {
     if (element > 2000) {
      return false;
     }
     return true;
    });
    console.log(newArr);
    // 回调函数返回值为true则表示当前需要保留当前元素,返回false则表示不保留当前元素,如果没写返回值默认为undefined也就是false 
    // 当数组迭代完成时,会返回一个新数组,这个新数组中的元素取决于在回调函数中,有多少个元素返回了true得以保留
    
    1. forEach方式进行迭代(ES5的新方法)
      和filter()方法一样传入一个回调函数,有JS内部调用进行数组遍历,循环遍历数组时,每循环到一个元素就会调用一次,回调函数同样有3个参数,参数1: 遍历到的元素,参数2: 便利到的元素索引,参数3: 原数组
    var arr = [4, 6, 7, 8, 3, 46, 8];
    arr.forEach(function(e){
        console.log(e);
    }
    
    var arr = [4, 6, 7, 8, 3, 46, 8];
    arr.forEach(function(element, index, arr){
        console.log(element);
        console.log(index);
        console.log(arr);
    });
    

    位置方法:

    1. indexOf() 返回找到数组中第一个a出现的位置
    var arr = ["c", "a", "z", "a", "x", "a"];
    console.log(arr.indexOf("a"));//1
    // 注:搜索""结果是0,搜不到的结果是-1,搜索"ca"结果也是0
    
    1. lastIndexOf() 返回从后往前找到数组中第一个a出现的位置
    var arr = ["c", "a", "z", "a", "x", "a"];
    console.log(arr.lastIndexOf("a"));//5
    // indexOf的第二个参数:从哪个索引开始找,包含该索引
    // 找不到返回-1!
    
    1. 实例:寻找每个a出现的位置
    var arr = ["c", "a", "z", "a", "x", "a"];
    var index = -1;
    do {
        index = arr.indexOf("a", index+1);
        console.log(index);
    } while (index !== -1);
    
    1. 实例:统计元素的出现次数
      要统计每个元素出现的次数,可以使用键值对(对象)的形式来存储数据,元素作为键(对象的属性),出现的次数作为值,元素每出现一次,就让键对应的值自增一即可
    var arr = ["c", "a", "z", "a", "x", "a"];
    var count = {};
    for (var i = 0; i < arr.length; i++) {
        var item = arr[i];
        if (count[item]) { //循环过程中判断,如果这个元素在对象中有键,那取出值进行自增
            count[item]++;
        } else { //如果这个元素在对象中没有键,那就加一个键进去,初始值为1,表示出现了一次
            count[item] = 1;
        }
    }
    console.log(count);
    

    其他方法:

    1. slice截取数组,不会改变原数组,返回一个新数组
    var arr = [4, 6, 7, 8, 3, 46, 8];
    console.log(arr.slice(0, 2));//结果是[4, 6]
    // 注:开始能取到,结束取不到 !
    
    1. splice删除数组中的元素,会对原数组进行修改,返回删掉的数组
    var arr = [4, 6, 7, 8, 3, 46, 8];
    console.log(arr.splice(0, 2));
    // 从一个索引开始,删除多少个元素
    // 第三个参数可以往删除的地方添加元素,可以添加多个,使用逗号隔开即可
    
    1. 清空数组:
    var array = [1,2,3,4,5,6];
    //方式1
    array.splice(0,array.length); //删除数组中所有项目 
    //方式2
    array.length = 0; //length属性可以赋值
    //方式3
    array = [];  //推荐
    

    字符串对象方法

    截取方法

    1. slice() 从start位置开始,截取到end位置,end取不到
    2. substring() 从start位置开始,截取到end位置,end取不到
    3. substr() 从start位置开始,截取length个字符

    位置方法 indexOf()

    替换方法 replace()

    字符方法 charAt()

    其他方法

    1. split()
    2. trim()
    3. charCodeAt() //获取指定位置处字符的ASCII码
    4. str[0] //ES5,IE8+支持 和charAt()等效

    归纳整理数组字符串常用方法

    字符串方法

    var a="i love you!";
    
    1. toUpperCase() 将小写转换成大写

    2. toLowerCase() 将大写转换成小写

    3. charAt() 返回指定位置的字符

    document.write(a.charAt(4));//结果是v
    // 注:字符是从0开始到length-1结束
    
    1. indexOf() 返回指定字符的位置
    document.write(a.charAt(v));//结果是4
    
    1. lastIndexOf()

    2. split() 返回被分割的字符串数组

    document.write(a,split("v",2));//结果是["i lo","e you!"]
    // 注:前面指定分割的位置,不填则分割成一个个字符;后面指定分割组数,可不填
    
    1. substring() 提取字符串
    document.write(a.substring(2,5));//结果是love
    document.write(a.substring(7));//结果是you!
    // 注:前面指定开始提取的位置;后面指定结束提取的位置,不填则默认到字符串最后
    
    1. subsrt() 提取指定数目字符串
    document.write(a.substr(2,4));//结果是love
    document.write(a.substr(-4));//结果是you!
    // 注:前面指定开始提取的位置;后面指定提取的长度,不填则默认到字符串最后;若出现-,则表示倒着数
    

    数组方法

    1. concat() 连接数组,不改变原数组,返回一个新数组
    var a=["1","2"];
    var b=["3","4"];
    document.write(a.concat(b));
    //结果是["1","2","3","4"]
    
    1. join() 用指定分隔符连接数组元素,返回string
    var a=["I","love","you"];
    document.write(a.join("."));//结果是I.love.you
    // 注:若不指定,默认","
    
    1. reverse() 颠倒数组元素顺序,会改变原数组
    var a=["1","2"];
    document.write(a.reverse());//结果是["2","1"]
    
    1. slice() 选定元素,不改变原数组,返回一个子数组
    var a=["1","2","3","4"];
    document.write(a.slice(2,4));//结果是["3","4"];
    // 注:前面指定开始选定的位置,注意不包括这个位置;后面指定结束选定的位置,不填则默认到字符串最后;若出现-,则表示倒着数
    
    1. sort() 数组排序
    function a(x,y){return x-y;}
    //升序,若降序,return y-x;
    var b=["1","7","5","3"];
    document.write(b.sort(a));
    //结果是["1","3","5","7"]
    
    1. slice(start,end) 截取指定索引之间的字符串(包括start,不包括end),返回新的字符串
    var str = "abcdaefga";
    console.log(str.slice(1,5)); // "cda"
    
    1. subString(start,stop) 截取指定索引之间的字符串(包括start,不包括stop),返回新的字符串
    var str = "abcdaefga";
    console.log(str.slice(1,5)); // "cda"
    
    1. charAt(index) 返回指定位置的字符
    var str = "abcde";
    console.log(str.charAt(3)); // d
    
    1. concat(str) 连接字符串,生成一个新的字符串,原字符串不会被改变
    var str1 = "abc";
    var str2 = "def";
    console.log(str1.concat(str2)); // “abcdef”
    
    1. trim()去掉字符串的首尾的空格,返回新的字符串
    var str = "  abcd  ";
    console.log(str.trim()); // "abcd"
    

    相关文章

      网友评论

          本文标题:JS数组字符串方法整理

          本文链接:https://www.haomeiwen.com/subject/rojbqftx.html