红宝书之数组的方法

2019-01-01  本文已影响8人  楠楠_c811
数组的栈方法

栈是一种后进先出的数据结构,最新添加的项被最早移除
push() 向数组后面插入元素
pop() 删除数组最后一项

数组的队列方法

队列是先进先出,在列表的末尾添加项,从列表的前端移除项
shift() 删除数组第一项
unshift() 向数组前面插入元素

数组的排序方法(返回重排序之后的数组)

reverse() 翻转数组
sort() 数组排序 接收比较函数,也可以得到降序排列

数组的迭代方法(遍历)

每个方法都接收两个参数:要在每一项上运行的函数和(可选的)运行该函数的作用域对象 - 影响this值。
传入这些方法中的函数会接收三个参数,数组项的值,该项在数组中的位置,数组对象本身。
every()
filter()
forEach()
map()
some()

数组的操作方法(不会改变原数组,而是返回新数组)

concat()
slice()
splice() 删除,插入,替换数组

数组的位置方法

indexOf() 从前向后查找
lastindexOf() 从后向前查找

数组的归并方法

reduce() 从数组第一项开始,遍历到最后
reduceRight() 从数组最后一项开始,便利到最后

数组的其他方法

jion() 将数组转换为字符串

具体方法用处:
push() 向数组后面追加元素

特点:会改变原数组,带回的返回值是数组的新长度

unshift() 向数组前面插入元素

特点:会改变原数组,带回的返回值是数组的新长度,IE6、7不支持

pop() 删除数组的最后一项

特点:会改变原数组,写一个删除数组的最后一项,写两个删除数组的最后两项,返回值为被删除的元素

shift() 删除数组的第一项

特点:会改变原数组,写一个删除第一项,写两个删除前两项,返回值为被删除的元素

扩展应用

unshift(pop()) // 将删除的最后一项插入到数组的最前面,写几次插入几次。
push(shift()) // 将删除的第一项插入到数组的最后面,写几次插入几次。

jion() 连接符

通过这个连接符把数组转换为 字符串,返回值为string类型。

reverse() 翻转数组

用于颠倒数组中元素的排序,返回值是一个数组。

sort() 数组排序

默认从小到大进行排序,默认是以字符串的编码进行排序,而不是以数字大小。它会改变原数组。
需要注意的是它可以接收一个比较函数作为参数。
如果需要它按照数值大小从小到大升序排列,格式为:
arr.sort(function(a,b){return a-b})
从大到小降序排列为:
arr.sort(function(a,b){return b-a})

排序原理是从大到小排序,拿到数组中的两个值,如果前一个值大于后一个值,不交换位置,如果前一个值小于后一个值,就交换位置。

some() 测试数组

测试数组中的某些元素是否通过由提供的函数实现的测试,返回布尔值。

find()

返回数组中满则测试条件的第一个值,如果没有符合条件的,就返回undefined。

every()

测试数组所有元素是否通过了指定函数的测试,,返回值为布尔值。

filter()

创建一个新数组,包含通过提供函数测试的所有元素。

map()

创建一个新数组,结果是数组中的每个元素都调用一个提供的函数后返回的结果。

findIndex()

返回数组中满足提供的测试函数的第一个值的下标,如果没有符合的值,就返回-1。

concat()

将数组和后面参数里的数组拼接起来,返回一个新数组。
格式:arr.concat(arr1,arr2,arr3)

slice()

从已有数组中返回选定的元素。
arrayObject.slice(start,end)
start : 必传参数,规定从何处开始选取,如果是负数,从数组尾部开始算起。
end:可传可不传,规定从何处结束选取,是数组片段结束时的数组下标。

indexOf()

从数组的开头向后查找。
indexOf(searchValue ,startIndex)
searchValue:必传,要查找的项
startIndex:可选,起点位置的索引
返回值为查找的项在数组中的位置,类型为umber,没有找到的话就返回-1。

lastIndexOf()

lastIndexOf(searchValue ,startIndex)
从数组的末尾开始向前查找。
searchValue:必传,要查找的项。
startIndex:可选,起点位置的索引
返回值是要查找的项在数组中的位置,类型为number,没有找到就返回-1。

上一篇下一篇

猜你喜欢

热点阅读