数组操作方法整理

对数组的操作方法记得有点混乱,这里整理一下。


1.数组创建

var arr = new Array()

var arr = new Array([size])  // 定义数组创建时的长度

2.数组头部的添加 unshift()、删除 shift()

unshift() 方法将它的参数插入数组的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法可有多个参数。并返回改变后数组的长度

arr.unshift(el1,el2,el3,...) 直接改变了arr的值。

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

arr.shift()  直接改变了arr的值。

3.数组尾部的添加 push()、删除 pop()

push() 方法可向数组的末尾添加一个或多个元素,并返回改变后数组的长度

arr.push(el1,el2,el3,...) 直接改变了arr的值。

pop() 方法将删除数组最后一个元素,把数组长度减1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值

arr.pop() 直接改变了arr的值。

4.截取数组中的一段 slice()

slice(start,end) 从原有数组中从start位置到end位置截取一个新数组,返回的是新数组

arr.slice(start,end) 返回新数组,不改变原有的数组

start 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end
可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从start到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

5.连接多个数组 concat()

arr.concat(el)  参数可为值,返回的是arr数组末尾加了个el的新数组。
arr.concat(arr1,arr2,arr3,...)  参数也可为数组,返回的是arr,arr1,arr2,arr3连接的新数组 该方法用于连接两个或多个数组。该方法不会改变现有的数组,返回的是一个新数组

6.数组的排序 倒序排列 reverse() 可选排序 sort()

arr.reverse() 方法用于颠倒数组中元素的顺序,直接改变原有数组。

arr.sort(sortby) 方法用于对数组的元素进行排序,直接改变原有数组。
sortby是一个函数。
正序排列  arr.sort((a,b)=>{return a-b})
倒序排列  arr.sort((a,b)=>{return b-a})

7.数组元素字符串化 join()
arr.join(separator)
方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符separator进行分隔的。返回的是一个新字符串
separator 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。还可用‘’,就是不加分隔符全串联起来。

8. 压轴,强大的splice()方法

splice() 方法会直接对数组进行修改。
arr.splice(index,howmany,item1,.....,itemX)


删除 arr.splice(index,howmany)  从index位置删除howmany个,返回的是删除的内容,直接改变了原数组

插入 arr.splice(index,0,insertVal)   从index位置插入insertVal,返回的是空数组,直接改变了原数组

替换 arr.splice(index,howmany,insertVal)
从index位置删除howmany个,插入insertVal,返回的是删除的内容,直接改变了原数组

9.补充ES6的两个数组值查找方法

ES6为Array增加了find(),findIndex函数。

find()函数用来查找目标元素,找到就返回该元素,找不到返回undefined。

findIndex()函数也是查找目标元素,找到就返回元素的位置,找不到就返回-1。

他们的都是一个查找回调函数。

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

array.findIndex(function(currentValue, index, arr), thisValue)
currentValue必需。当前元素
index可选。当前元素的索引值
arr可选。当前元素所属的数组对象
thisValue可选。 传递给函数的值一般用 "this" 值。
如果这个参数为空, "undefined" 会传递给 "this" 值
 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值