VisYang's Studio.

一些常用数组、字符串方法

2015/06/12

数组方法

  • arr.join(‘separator’); //将数组转换成字符串。separator可选–连接符,忽略以”,”连接

    1
    2
    3
    var arr = [1,2,3,4];
    console.log(arr.join('-'));//1-2-3-4
    console.log(arr);//[1, 2, 3, 4]
  • arr.reverse(null); //数组翻转,返回值反转后的数组,原数组会发生改变

    1
    2
    3
    var arr = [1,2,3,4];
    console.log(arr.reverse());// [4, 3, 2, 1]
    console.log(arr);// [4, 3, 2, 1]
  • arr.sort(null/fn); //数组排序,返回值排序改变后的数组,原数组发生改变(只按照每项的第一个数字比较)

    1
    2
    3
    4
    5
    6
    var arr = [1,4,3,22];
    console.log(arr.sort());// [1, 22, 3, 4]
    console.log(arr);//[1, 22, 3, 4]
    console.log(arr.sort(function(f1,f2){
    return f1-f2
    }))//[22,4,3,1]
  • arr.concat(arrs/eles); //连接数组或元素,返回连接后的新数组,原数组不会改变

    1
    2
    3
    4
    5
    6
    var arr = [1,2,3,4];
    console.log(arr.concat(1,2));//[1, 2, 3, 4, 1, 2]
    console.log(arr);//[1, 2, 3, 4]
    var arr2 = [1,2,3,4];
    console.log(arr2.concat([1,2]));//[1, 2, 3, 4, 1, 2]
    console.log(arr2);//[1, 2, 3, 4]
  • arr.slice(start,end); //截取数组,第一个参数表示截取开始的位置, 第二个参数表示截取结束之前位置(不包含结束位置),如果不写第二个参数默认截取到 最后,返回值是截取后的新数组,原数组不会发生改变

    1
    2
    3
    4
    5
    6
    var arr = [1,2,3,4];
    console.log(arr.slice(1));//[2, 3, 4]
    console.log(arr);//[1, 2, 3, 4]
    var arr2 = [1,2,3,4];
    console.log(arr2.slice(1,2));//[2]
    console.log(arr2);//[1, 2, 3, 4]
  • arr.splice(start,length,addEles); // 删除数组的方法(可以实现添加 删除 修改),第一个参数是开始删除的位置,第二个参数是删除元素的个数,第三个参数和之后的参数是需要添加的元素,添加到删除的位置,返回值是删除元素组成的一个 新数组,原数组会发生改变

    1
    2
    3
    4
    5
    6
    7
    8
    9
    var arr = [1,2,3,4];
    console.log(arr.splice(1));//[2, 3, 4]
    console.log(arr);//[1]
    var arr2 = [1,2,3,4];
    console.log(arr2.splice(1,2));//[2, 3]
    console.log(arr2);// [1, 4]
    var arr3 = [1,2,3,4];
    console.log(arr3.splice(1,2,3,4));// [2, 3]
    console.log(arr3);//[1, 3, 4, 4]
  • arr.push(eles); //将一个或多个元素往数组的末尾添加进去,返回值是改变后的数组长度,原数组改变

    1
    2
    3
    4
    5
    6
    var arr = [1,2,3,4];
    console.log(arr.push(1));//5
    console.log(arr);//[1, 2, 3, 4, 1]
    var arr2 = [1,2,3,4];
    console.log(arr2.push(1,2));//6
    console.log(arr2);//[1, 2, 3, 4, 1, 2]
  • arr.unshift(eles); //将一个或多个元素从数组的前面添加进去,同上

    1
    2
    3
    4
    5
    6
    var arr = [1,2,3,4];
    console.log(arr.unshift(1));//5
    console.log(arr);//[1, 1, 2, 3, 4]
    var arr2 = [1,2,3,4];
    console.log(arr2.unshift(1,2));//6
    console.log(arr2);//[1, 2, 1, 2, 3, 4]
  • arr.pop(null); //从数组后面删除一项,返回值是删除的那一项,原数组会发生改变

    1
    2
    3
    var arr = [1,2,3,4];
    console.log(arr.pop());//4
    console.log(arr);//[1, 2, 3]
  • arr.shift(null); //从数组前面删除一项,返回值是删除的那一项,原数组会发生改变

    1
    2
    3
    var arr = [1,2,3,4];
    console.log(arr.shift());//1
    console.log(arr);//[2, 3, 4]
  • arr.forEach(fucntion(item,i,array));//forEach()数组遍历方法,参数为回调函数,函数内参数1是数组遍历的当前项内容,参数2是对应索引,参数3是数组本身(参数3可不传)

    1
    2
    3
    4
    5
    6
    7
    var arr = [12,34];
    var arr2 = [];
    arr.forEach(function(item,i,array){
    console.log(item,i);
    console.log(array[i] == item)
    });
    //12 0//true//34 1//true

字符串方法:

  • str.charAt(index); //在字符串中根据下标去找对应的字符

    1
    2
    3
    var str = 'imsohungry';
    console.log(str.charAt(1));//m
    console.log(str);//imsohungry
  • str.charCodeAt(index); //根据下标找对应字符的字符编码

    1
    2
    3
    var str = 'imsohungry';
    console.log(str.charCodeAt(1));//109
    console.log(str);//imsohungry
  • str.indexOf(searchvalue,fromindex);//searchvalue(必须)必需。规定需检索的字符串值。fromindex可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。

    1
    2
    3
    var str = 'imsohungry';
    console.log(str.indexOf('s'));//2
    console.log(str);//imsohungry
  • str.lastIndexOf(searchvalue,fromindex);同上,从后往前找

    1
    2
    3
    var str = 'imsohungry';
    console.log(str.lastIndexOf('s'));//2
    console.log(str);//imsohungry
  • str.toUpperCase(null)将小写字符转换成大写

    1
    2
    3
    var str = 'imsohungry';
    console.log(str.toUpperCase());//IMSOHUNGRY
    console.log(str);//imsohungry
  • str.toLowerCase(null)将大写转换小写

    1
    2
    3
    var str = 'IMSOHUNGRY';
    console.log(str.toUpperCase());//IMSOHUNGRY
    console.log(str);//IMSOHUNGRY
  • str.slice(start,end(不包含结束位置));//start(开始截取的位置)end(结束截取的位置,但不包含此位置)如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数,如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。

    1
    2
    3
    4
    5
    6
    var str = 'imsohungry';
    console.log(str.slice(1));//msohungry
    console.log(str);//imsohungry
    var str2 = 'imnothungryatall';
    console.log(str2.slice(1,2));//m
    console.log(str2);//imnothungryatall
  • str.substring(start,end); //start(开始截取的位置)end(结束截取的位置,但不包含此位置)如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。 如果 start 或 end 为负数,那么它将被替换为 0。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    var str = 'imsohungry';
    console.log(str.substring(1));//msohungry
    console.log(str);//imsohungry
    var str2 = 'imnothungryatall';
    console.log(str2.substring(1,2));//m
    console.log(str2);//imnothungryatall
    var str3 = 'imnothungryatall';
    console.log(str2.substring(-500,2));//im
    console.log(str2);//imnothungryatall
  • str.substr(start,length);//start 必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。 length 可选。在返回的子字符串中应包括的字符个数。 如果 length 为 0 或负数,将返回一个空字符串。如果start为负数,则start=str.length+start。如果没有指定该参数,则子字符串将延续到str的最后

    1
    2
    3
    4
    5
    6
    7
    8
    9
    var str = 'imsohungry';
    console.log(str.substr(1));//msohungry
    console.log(str);//imsohungry
    var str2 = 'imsohungry';
    console.log(str2.substr(4,2));//hu
    console.log(str2);//imsohungry
    var str3 = 'imsohungry';
    console.log(str2.substr(-4,2));//ng
    console.log(str2);//imsohungry
  • str.split(separator);//将字符串转换成数组,将连接符separator变为”,”

    1
    2
    3
    4
    5
    6
    var str = 'im-so-hungry';
    console.log(str.split('-'));//["im", "so", "hungry"]
    console.log(str);//im-so-hungry
    var str2 = 'imnothungryatall';
    console.log(str2.split('a'));//["imnothungry", "t", "ll"]
    console.log(str2);//imnothungryatall
  • str.trim(null); //去除字符串两端空格,返回改变的数组,不改变原数组

    1
    2
    3
    4
    var str = ' new String ';
    console.log(str.length);//16
    console.log(str.trim().length);//10
    console.log(str.length);//16
  • str.replace(string/regexp,replacement);//替换文本或正则匹配项。参数1必需。规定子字符串或要替换的模式的 RegExp 对象。如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。参数2必需。一个字符串值。规定了替换文本或生成替换文本的函数。

    1
    2
    3
    var str = 'imsohungry';
    console.log(str.replace('so',''));//imhungry
    console.log(str.replace(/so/,''));//imhungry
CATALOG
  1. 1. 数组方法
  2. 2. 字符串方法: