数组方法归纳

引言

在正式进入主题之前,先给大家介绍基本JS数据类型及存储位置

栈内存:存储有序即一个挨着一个存储;堆内存:存储无序

原始值:number、string、null、undefined、boolean,存储在栈内存

引用值:array、object、function () {}、Date、RegExp(),存储在堆内存

正文

数组常用方法

push:数组尾部添加一个或者多个元素,参数为要添加的元素,返回值为添加后数组长度(改变原数组

var arr = [1, 2, 3];

console.log(arr.push(4, 5, 6))//6

console.log(arr)//[ 1, 2, 3, 4, 5, 6 ]

unshift:数组头部添加一个或者多个元素,参数为要添加的元素,返回值为添加后数组长度(改变原数组

var arr = [1, 2, 3];

console.log(arr.unshift(4, 5, 6))//6

console.log(arr)//[ 4, 5, 6, 1, 2, 3 ]

pop:删除数组尾部一个元素,没有参数,返回值为被删除的元素(改变原数组

var arr = [1, 2, 3];

console.log(arr.pop())//3

console.log(arr)//[ 1, 2 ]

shift:删除数组头部一个元素,没有参数,返回值为被删除的元素(改变原数组

var arr = [1, 2, 3];

console.log(arr.shift())//1

console.log(arr)//[ 2, 3 ]

join:将数组元素用join参数拼接成字符串,参数为字符串,返回值为拼接后新的字符串(不改变原数组

var arr = [1, 2, 3];

console.log(arr.join(","))//"1,2,3"

console.log(arr)//[ 1, 2, 3 ] 不改变原数组

注:如果想直接将数组转换成字符串,参数直接为空即可

var arr = [1, 2, 3];

console.log(arr.join(""))//"123"

reverse:颠倒数组元素顺序,无参数,返回值为颠倒后的新数组(改变原数组

var arr = [1, 2, 3];

console.log(arr.reverse())//[ 3, 2, 1 ]

console.log(arr)//[ 3, 2, 1 ] 会改变原数组

slice(startIndex,endIndex):从起始索引开始截取到终止索引之前(左闭右开),参数为起始索引、终止索引,返回值为被截取部分数组不会改变原数组

var arr = [1, 2, 3, 4, 5, 6, 7];

console.log(arr.slice(1, 2))//[ 2 ]

console.log(arr)//[ 1, 2, 3, 4, 5, 6, 7 ] 不会改变原数组

splice(startIndex,num,item1,item2...):在原数组中添加并删除元素,参数为删除的起始索引StartIndex、删除的数量num,要添加的一个或者多个元素,返回值为(改变原数组

添加元素位置:总是在startIndex的位置开始添加!!!但是如果starIndex大于等于原数组长度,删除的子数组为空,默认在数组最后一位开始添加

startIndex:必填,如果穿undefined、null默认为0

var arr = [1, 2, 3, 4, 5, 6, 7];

console.log(arr.splice(3, 4, 8, 9))//[] 被删除的子数组为空

console.log(arr)//[ 1, 2, 3, 4, 5, 6, 7, 8, 9 ] 原数组直接添加

num:必填,如果传null、undefined默认不执行删除操作,直接在startIndex位置添加

var arr = [1, 2, 3, 4, 5, 6, 7];

console.log(arr.splice(0,undefined, 8, 9))//[] 被删除的子数组为空

console.log(arr)//[ 8, 9, 1, 2, 3, 4, 5, 6, 7 ] 原数组直接添加

splice(startIndex,num):在原数组中删除元素,参数为要删除的起始索引、删除的数量,返回值为被删除的子数组(改变原数组

var arr = [1, 2, 3, 4, 5, 6, 7];

console.log(arr.splice(0, 2))//[ 1, 2 ] 被删除的子数组

console.log(arr)//[ 3, 4, 5, 6, 7 ] 删除后的子数组

concat:将多个数组拼接成一个数组,参数为一个或多个数组或者元素,返回值为拼接后的新的数组(不改变原数组

var arr = [1, 2, 3];

console.log(arr.concat([4,5], 6, 7))//[ 1, 2, 3, 4, 5, 6, 7 ]拼接后的数组

console.log(arr)//[ 1, 2, 3 ] 不改变原数组

indexOf:从数组头部开始查找数组内第一次出现参数元素出现的下标,参数为要查找的元素,如果要查找的元素存在返回值为对应下标,要查找的元素不存在返回值为-1(不改变原数组

var arr = [1, 2, 3, 1];

console.log(arr.indexOf(10))//-1

console.log(arr.indexOf(1))//0

console.log(arr)//[ 1, 2, 3, 1 ]

lastIndexOf:与indexOf功能相同,查找方向相反,从数组尾部开始查找

var arr = [1, 2, 3, 1];

console.log(arr.lastIndexOf(10))//-1

console.log(arr.lastIndexOf(1))//3

console.log(arr)//[ 1, 2, 3, 1]

数组的迭代方法

forEach:遍历数组,没有返回值

var arr = [1, 2, 3];

arr.forEach((ele, index, self) => {
    
})

console.log(arr)//[ 1, 2, 3 ]

filter:遍历数组,返回值为 该数组每一项处理函数返回值为true的对应数组元素组成的数组 数组

var arr = [1, 2, 3];

var result = arr.filter((ele, index, self) => {
    return ele > 2;
})
console.log(result)//[ 3 ]
console.log(arr)//[ 1, 2, 3 ]

every:遍历数组,返回值为boolean值,如果数组的每一项的处理函数都返回true,则函数返回true

var arr = [1, 2, 3];

var result = arr.every((ele, index, self) => {
    return ele > -1;
})
console.log(result)//true
console.log(arr)//[ 1, 2, 3 ]

some:遍历数组,返回值为boolean值,如果数组有一项的处理函数都返回true,则函数返回true

var arr = [1, 2, 3];

var result = arr.some((ele, index, self) => {
    return ele > 2;
})
console.log(result)//true
console.log(arr)//[ 1, 2, 3 ]

map:遍历数组,返回值为 数组每一项处理函数返回值 组成的数组

var arr = [1, 2, 3];

var result = arr.map((ele, index, self) => {
    return ele * 2;
})
console.log(result)//[ 2, 4, 6 ]
console.log(arr)//[ 1, 2, 3 ]

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值