js 数组操作探究

2018-08-02  本文已影响14人  淡然7698

有空闲时间了, 深入的研究一下js 中的数组方法

js中的数组方法

首先是会改变原数组的方法:

  1. shift unshift

shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值

unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度

array.shift()
array.unshift(item1,item2, ..., itemX)
  1. pop push

pop()方法从数组中删除最后一个元素,并返回该元素的值。

push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
注意: 新元素将添加在数组的末尾。

array.pop()
array.push(item1, item2, ..., itemX)
  1. reverse

reverse()方法颠倒数组中元素的位置,并返回该数组的引用。

array.reverse()
  1. sort

sort() 方法用于对数组的元素进行排序。返回排序后的数组。原数组已经被排序后的数组代替。
排序顺序可以是字母或数字,并按升序或降序。默认排序顺序为按字母升序。
ps:sort比较复杂 下面附上mdn的文档
MDN 文档:Array.prototype.sort()

array.sort(sortfunction)
  1. splice

然后是不改变原数组的方法

  1. concat

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

array1.concat(array2,array3,...,arrayX)
  1. join

join()方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串 并返回这个字符串。
元素是通过指定的分隔符进行分隔的,且不会改变原数组.

array.join(separator)
  1. slice

slice() 方法可从已有的数组中返回选定的元素。
slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
arr.slice()或者arr.slice(0) 将返回一个浅复制了原数组中的元素的一个新数组。且原始数组不会被修改。

array.slice(start, end)
  1. map fillter forEach some every reduce (不改变原数组,不对空数组操作)

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值
map() 方法按照原始数组元素顺序依次处理元素
注意: map() 不会对空数组进行检测

array.map(function(currentValue,index,arr), thisValue)

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意: filter() 不会对空数组进行检测。

array.filter(function(currentValue,index,arr), thisValue)

forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
注意: forEach() 对于空数组是不会执行回调函数的。

array.forEach(function(currentValue, index, arr), thisValue)

reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
reduce() 可以作为一个高阶函数,用于函数的 compose。
注意: reduce() 对于空数组是不会执行回调函数的。

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。
注意: some() 不会对空数组进行检测。

array.some(function(currentValue,index,arr),thisValue)

every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)
every() 方法使用指定函数检测数组中的所有元素:
如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
如果所有元素都满足条件,则返回 true。
注意: every() 不会对空数组进行检测。

array.every(function(currentValue,index,arr), thisValue)
上一篇下一篇

猜你喜欢

热点阅读