JavaScript学习-数组的方法

182 阅读5分钟

改变原数组

pop()

从数组中删除最后一个元素,返回删除的元素。

push()

push(element1, ..., elementN),向数组的最后插入一个或多个元素,返回数组的长度。

reverse()

反转数组,返回该数组。

shift()

从数组中删除第一个元素,返回删除的元素。

unshift()

unshift(element1, ..., elementN),向数组的第一项插入一个或多个元素,返回数组的长度。

sort()

sort(compareFunction((firstEl,secondEl)),对数组元素进行排序,返回排序后的数组。

  • compareFunction:用来指定按某种顺序进行排列的函数。如果省略,元素按照转换为的字符串的各个字符的Unicode位点进行排序。

copyWithin()

copyWithin(target, start, end),浅复制一部分数组到同一个数组的另一位置,返回改变后的数组。

  • target:复制序列到该位置。
  • start:开始复制元素的起始位置。
  • end:开始复制元素的结束位置。

fill()

fill(value,start,end),用一个固定值填充一个数组从起始位置到结束位置内的全部元素,不包含结束位置,返回改变后的数组。

  • value:固定值
  • start:起始位置
  • end:结束位置

splice()

splice(start,deletCount,item1,...,itemN) ,通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。

  • start:指定修改的指定位置
  • deletCount:指定删除的个数
  • item:指定添加的新的元素

不改变原数组

Array.from()

Array.from(arrayLike,mapFn,thisArg),从一个类似数组或可迭代对象中创建一个新的,浅拷贝的数组实例,返回新数组。

  • arrayLike:类似数组或可迭代对象。
  • mapFn:新数组中的每个元素会执行该回调函数。
  • thisArg:执行回调函数 mapFn 时 this 对象。

isArray()

isArray(value),检测传递的值是不是Array,返回true/false。

Array.of()

Array.of(element1, element2, ..., elementN),创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型,返回新数组。

concat()

concat(arr1, ..., arrN),合并两个或多个数组,返回新数组。

every()

every(callback(value, index, array),this),测试一个数组中的元素是否都能通过某个指定函数的测试,返回true/false。

  • callback:用来测试的函数。
  • this:执行callback时绑定的this值。

some()

some(callback(value, index, array),this),测试一个数组中是否至少有一个元素能通过某个指定函数的测试,返回true/false。

  • callback:用来测试的函数。
  • this:执行callback时绑定的this值。

filter()

filter(callback(value,index,array),this),创建一个新数组,其包含所有通过删选的元素,返回一个新数组,如果没有元素通过测试,则返回一个空数组。

  • callback:用于筛选的函数
  • this:执行callback是绑定的this值

find()

find(callback(value,index,array),this),返回数组中满足提供的测试函数的第一个元素的值,否则返回undefined。

  • callback:用于测试的函数
  • this:执行callback是绑定的this值

findIndex()

find(callback(value,index,array),this),返回数组中满足提供的测试函数的第一个元素的索引,否则返回-1。

  • callback:用于测试的函数
  • this:执行callback是绑定的this值

flat()

flat(depth),按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回,用于数组的扁平化。

  • depth:指定的深度

forEach()

forEach(callback(value,index,array),this),对数组的每个元素执行一次提供的函数,返回undefined。

  • callback:提供的函数
  • this:执行callback是绑定的this值

includes()

includes(value,fromIndex),判断一个数组是否包含一个指定的元素,返回true/false

  • value:指定的元素
  • fromIndex:从fromIndex索引处开始查找value,如果为负值,则按升序从 array.length + fromIndex 的索引开始查找,默认为0。

indexOf()

indexOf(value,fromIndex),返回在数组中可以找到指定元素的第一个索引,否则,返回-1

  • value:指定的元素
  • fromIndex:从fromIndex索引处开始查找value,如果为负值,则按升序从 array.length + fromIndex 的索引开始查找,默认为0。

join()

join(separator),将一个数组或一个类数组对象的所有元素连接成字符串,返回这个字符串。

  • separator:指定一个字符串来分割元素。如果省略,则使用逗号分隔。

map()

map(callback(value,index,array),this),数组中的每个元素都调用一个提供的函数后组成一个新数组,返回这个新数组。

  • callback:提供的函数
  • this:执行callback是绑定的this值

reduce()

reduce(callback(accumulator,value,index,array),initialValue),对数组的每个元素执行一个提供的函数,将其结果汇总为单个返回值。

  • callback:提供的函数
  • accumulator:累计器累计回调的返回值,它是上一次调用回调的累计值,或是initialValue。
  • value:当前正在执行的元素值
  • index:当前正在执行的元素索引
  • array:原数组
  • initialValue:作为第一次调用callback时的accumulator的值,如果没有,则用数组的第一个元素。

slice()

silce(start,end),从start开始对数组元素进行浅拷贝,到end结束(不包含end),返回包含浅拷贝元素的新数组。

  • start:从该索引处对数组元素进行提取,若省略,则为数组的第一个元素。
  • end:在该索引处停止对数组元素的提取,若省略,则为数组的最后一个元素。