js方法摘录

263 阅读6分钟

经常使用一些方法时忘掉还要百度,随手记录以下方便以后查阅。

1.关于substring、substr、slice、splice、split的使用(substring、substr、split只能操作字符串,splice只能操作数组,slice既可操作数组又可以操作字符串)

  • substring(start, stop)表示从start开始到stop之间的新字符串,含头不含尾。其中start是必填项,stop不填,表示从start处截取到字符串结尾。如果start比stop大,再方法执行前会先交换这两个参数。如果start 和 stop相等,会返回一个空的字符串。如果 start 和 stop 为负数,则在方法执行之前会先将负数变为0。

  • substr(start, length)表示返回从start开始包含length长度的新字符串,包含start且不修改原字符串。其中start是必填项,如果length不填,表示从start截取到字符串结尾。如果 start 为负数,那么start = str.length + start。如果length的值为0或负数,则返回空字符串。

  • splice(start, length, items)表示从下标start出截取length长度的元素后,在start处为原数组添加items,并返回截取的数组,splice会直接修改原数组。其中start和length都是必填项,items为选填项,如果length为0或负数,则返回空数组。如果start为负数,也是从右往左截取,最后一位为-1,倒数第二位为-2,以此类推。splice可以删除也可以插入。

  • slice(start, stop)表示截取从下标start到stop之间的元素,并返回新数组不改变原数组(字符串),类似与substring。start是必填项,如果stop不填,表示从start处截取到结尾。如果 start 比 stop 大,或者两者相等,则截取的内容为空。如果start或者stop为负数,那么负数的选项从数组尾部开始算起,最后一个数字为-1,倒数第二个数字为-2,依次类推。

  • split(separator,limit)用于把一个字符串分割成字符串数组,并返回一个字符串数组不改变原字符串。separator必需,字符串或正则表达式,从该参数指定的地方分割字符串,limit可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

2.关于push、pop、shift、unshift。操作数组。

  • push尾部追加。

  • pop尾部删除

  • shift头部删除

  • unshift头部增加

3.关于concat、join、sort、reverse、fliter、indexOf、map。操作数组。

  • concat连接两个或多个数组。不会改变现有的数组,返回被连接数组。arrayObject.concat(arrayX,arrayX,......,arrayX)

  • join把数组中的所有元素放入一个字符串。返回一个字符串。该字符串是通过把 arrayObject 的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入 separator 字符串而生成的。arrayObject.join(separator)。separator可选,指定要使用的分隔符,如果省略该参数,则使用逗号作为分隔符。

  • sort用于对数组的元素进行排序,排序顺序可以是字母或数字,并按升序或降序。

    默认排序顺序为按字母升序。array.sort(sortfunction)。sortfunction可选。规定排序顺序,必须是函数。该方法改变原有数组不生成副本。例:数字升序var points = [40,100,1,5,25,10];points.sort(function(a,b){return a-b});

  • reverse将数组元素反转,该方法会改变原来的数组,而不会创建新的数组。

  • fliter创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,不会对空数组进行检测,不会改变原始数组。array.filter(function(currentValue,index,arr), thisValue) 参数说明:

  • indexOf返回某个指定的字符串值在字符串中首次出现的位置。如果没有找到匹配的字符串则返回 -1。string.indexOf(searchvalue,start)。searchvalue必需,规定需检索的字符串值。start可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 string Object.length - 1。如省略该参数,则将从字符串的首字符开始检索。

  • map返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值,按照原始数组元素顺序依次处理元素,不会对空数组进行检测,不会改变原始数组。array.map(function(currentValue,index,arr), thisValue)参数说明:

4.关于toLowerCase、toLocaleLowerCase、toUpperCase、toLocaleUpperCase大小写转换。

返回新的字符串,加locale的区别是会按照本地方式把字符串转换为小写。只有几种语言(如土耳其语)具有地方特有的大小写映射。

5.关于Math.abs、Math.ceil、Math.floor、 Math.round、%

  • Math.abs()//取绝对值

  • Math.ceil()//向上取整

  • Math.floor()//向下取整

  • Math.round()//四舍五入取整

  • %     //取余(7%2  //1)

6.关于find、findIndex、filter 

  • find()      该方法主要应用于查找第一个符合条件的数组元素。它的参数是一个回调函数。在回调函数中可以写你要查找元素的条件,当条件成立为true时,返回该元素。如果没有符合条件的元素,返回值为undefined。回调函数有三个参数。value:当前的数组元素。index:当前索引值。arr:被查找的数组。

const myArr=[1,2,3,4,5,6];var v=myArr.find(value=>value>4);console.log(v);// 5

  • findIndex()    与find()的使用方法相同,只是当条件为true时findIndex()返回的是索引值,而find()返回的是元素。如果没有符合条件元素时findIndex()返回的是-1,而find()返回的是undefined。findIndex()当中的回调函数也是接收三个参数,与find()相同。

  • filter()与find()使用方法也相同。同样都接收三个参数。不同的地方在于返回值。filter()返回的是数组,数组内是所有满足条件的元素,而find()只返回第一个满足条件的元素。如果条件不满足,filter()返回的是一个空数组,而find()返回的是undefined

    var myArr = [1,3,4,5,6,3,7,4];
    console.log(myArr.filter((value,index,arr)=>arr.indexOf(value)===index));
    //[ 1, 3, 4, 5, 6, 7 ]
    

7.关于padStart、padEnd

  • padStart  str.padStart(targetLength,string)指定字符串填充到目标字符串前面,使其达到目标长度;

  例 let monList = [] for(var i =1;i<13;i++){monList.push((i + "").padStart("2", "0"))} //["01","02","03","04","05","06","07","08","09","10","11","12"]

  • padEnd  用法同padStart,区别为padStart是从前头补全,padEnd是从后头补全。