js数组对象常用方法

push

向数组末尾添加一个或多个元素,并返回新的长度。

  • 语法:array.push()
  • 注意1:向数组末尾添加元素
  • 注意2:此方法会改变数组的长度

unshift

向数组开头添加一个或更多元素,并返回新的长度

  • 语法:array.unshift()
  • 注意:此方法会改变数组的数目

pop

用来删除数组最后一个元素或多个元素,并返回删除的元素

  • 语法:array.pop()
  • 注意:此方法改变数组的长度

shift

用于把数组的第一个元素删除,并返回第一个元素的值

  • 语法:array.shift()
  • 注意:此方法改变数组的长度

concat

用于连接两个或多个数组
该方法不会改变现有数组,仅仅返回一个被连接数组的副本

  • 语法:array.concat(array1,array2,....)
  • 参数:必需,需要连接的数组(array1,array2,......)

find

返回通过测试条件的数组的第一个元素(测试条件在函数中定义);为数组中每一个元素都调用一次函数执行

  • 当数组中的元素在测试条件时返回true时,find()返回符合条件的元素,之后的值不会再调用执行函数。
  • 如果没有符合条件的元素返回 undefined
  • 语法:array.find((currentValue,index,arr)=>,thisValue)
  • 参数:
    currentValue:必需,当前元素的值
    
    index:可选,当前元素的索引值
    
    arr:可选,当前元素所属的数组对象

slice

  1. 可从已有的数组中选择特定的元素
  2. 可提取字符串的某个部分,并以新的字符串返回被提取的部分
  • slice方法不会改变原始数组
  • 语法:array.slice(start, end)
  • 参数:
    start:可选。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推
    
    end:可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
  • 返回值:返回一个新的数组,包含从start到end(不包含end下标的该元素)的数组中的元素

splice

用于添加或删除数组中的元素

  • 注意:这种方法会改变原始数组
  • 语法:array.splice(index,howmany,item1,.....,itemX)
  • 参数:
index:必需。规定从何处添加/删除元素,该参数是开始插入或者删除的元素下标,必须是数字。
howmany:可选。规定删除多少元素。必须是数字,可以是0。如果未规定此参数,则删除从index开始到原数组结尾的所有元素。
item1, ..., itemX:可选。要添加到数组的新元素
  • 返回值:如果从数组中删除了元素,则返回的是含有被删除的元素的数组

map

返回一个新数组,数组中的元素为原始数组元素调用函数处理后(按照原始数组元素顺序依次处理元素)的值

  • 注意:
  map()不会对空数组进行检测;
  map()不会改变原始数组,而是返回一个新数组
  • 语法:
  • array.map((currentValue,index,arr)=>{进行处理的函数}, thisValue)
  • 参数:
  1. (currentValue,index,arr)=>{}:必须。函数,数组中的每个元素都会执行这个函数。

    函数参数:

    1.currentValue:必须。当前元素的值。
    2.index:可选。当前元素的索引值。
    3.arr:可选。当前元素属于的数组对象。
  2. thisValue:可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。如果省略了thisValue,或者传入null、undefined,那么回调函数的 this 为全局对象。
  • 返回值:返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值

foreach

用于调用数组的每个元素,并将元素传递给回调函数。

  • 注意:forEach() 对于空数组是不会执行回调函数的。
  • 语法:array.forEach((currentValue,index,arr)=>{},thisValue)
  • 参数:
  1. (currentValue,index,arr)=>{}:必需。数组中每个元素需要调用的函数。

    函数参数:

    1.currentValue:必须。当前元素的值。
    2.index:可选。当前元素的索引值。
    3.arr:可选。当前元素属于的数组对象。
  2. thisValue:可选。传递给函数的值一般用 "this" 值。

如果这个参数为空, "undefined" 会传递给 "this" 值

  • 返回值:undefined

map和foreach的区别

  • map():对数组的每一项运行给定函数,返回每次函数调用的结果组成的数组。
  • forEach():对数组的每一项运行给定函数,无返回值。

reduce

reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。可以作为一个高阶函数,用于函数的 compose。

  • 注意:对于空数组不会执行函数操作
  • 语法:array.reduce((total, currentValue, currentIndex, arr)=>{}, initialValue)
  • 参数:
  1. (total, currentValue,currentIndex,arr)=>{}:必需。用于执行每个数组元素的函数。

    函数参数:

    1.total:必需。初始值,或者计算结束后的返回值。
    2.currentValue:必需。当前元素的值。
    3.currentIndex:可选。当前元素的索引值。
    4.arr:可选。当前元素属于的数组对象。
  2. initialValue:可选。传递给函数的初始值。
  • 返回值:返回函数的执行计算结果

filter

创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

  • 注意:
  filter()不会对空数组进行检测。
  filter()不会改变原始数组。
  • 语法:array.filter((currentValue, index, arr)=>{}, thisValue)
  • 参数:
  1. (currentValue,index,arr)=>{}:必需。数组中每个元素都会执行这个函数。

    函数参数:

    1.currentValue:必需。当前元素的值。
    2.index:可选。当前元素的索引值。
    3.arr:可选。当前元素属于的数组对象。
  2. 可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。如果省略了 thisValue ,"this" 的值为 "undefined"
  • 返回值:返回数组,包含了符合条件的所有元素。如果没有符合条件的元素则返回空数组。

你可能感兴趣的