JavaScript(十三)数组方法

栈结构:先进后出

push()

格式:数组.push(参数1,参数2,…)

​ 功能:给数组的末尾添加元素

​ 返回值:数组的元素个数

var arr=[1,2,3]
var result=arr.push('new')
console.log(arr,result)

在这里插入图片描述
pop()
格式:数组.pop(),不能传参

​ 功能:从数组的末尾取下一个元素

​ 返回值:取下的一个元素

var arr=[1,2,3]
var result=arr.pop()
console.log(arr,result)

在这里插入图片描述

队列结构:先进先出
push()

shfit()

​ 格式:数组.shfit(),没有参数

​ 功能:从头部取下一个元素

​ 返回值:取下的元素值

var arr=[1,2,3]
var res=arr.shift()
console.log(arr,res)

在这里插入图片描述

unshfit()

​ 格式:数组.unshfit() 没有参数

​ 功能:从头部插入一个元素

​ 返回值:返回数组的长度(元素个数)

var arr=[1,2,3]
var res=arr.unshift(0)
console.log(res,arr)

在这里插入图片描述
规律:只要是从数组取值的,那么返回的都会取下的值。往数组插值的,返回的是数组长度。上述方法,原数组都发生改变

concat()
​ 格式:数组.concat(数组,数据,…)
功能:拷贝原数组,生成新数组。合并数组
返回值:新数组,原数组不会发生任何改变
注:就算传入的是数组,那数组也需要单独拆出来在合并

var arr=[1,2,3,4]
var arr2=[5,6,7]
var res=arr.concat(arr2,'hello','word')
console.log(res,arr,arr2)

在这里插入图片描述
注:arr2是被拆分成一个个元素,在进行合并的。而不是将整个数组进行合并,否则res会变成[1, 2, 3,[ 4, 5, 6, 7], “hello”, “word”] 。所以新数组的长度是9

slice()

​ 格式:数组.slice(start,end)

​ 功能:基于当前数组获取指定区域元素(start,end),提取出元素生成新数组。start从下标0开始

​ 返回值:提取的元素生成的新数组 [start,end),原数组不会发生任何改变

注:新数组,包含start,不包含end

var arr=[1,2,3,4,5,6]
var res=arr.splice(1,3)
console.log(arr,res)

在这里插入图片描述
注:如果只写一个参数,意味这从提取从这个位置开始的数到数组结尾所有数字
在这里插入图片描述
注:如果不写参数,意味着提取数组所有的元素
在这里插入图片描述
splice()

​ 格式:数组.splice(start,length,新增元素)

​ start截取元素开始的下标;length:截取元素的个数;第三个参数开始,在start位置,插入的元素

​ 功能:可以实现增加、截取、修改数组中指定区域的元素,原数组被修改

​ 返回值:截取元素组成的数组(包含start)

注:省略顺序,必须从右往左开始省略,不能出现数组.splice(start, ,新增元素)和数组.splice( ,length,新增元素)这两种情况

截取

var arr=[1,2,3,4,5,6]
var res=arr.splice(1,3)
console.log(arr,res)

在这里插入图片描述
截取并插入新数据

var arr=[1,2,3,4,5,6]
var res=arr.splice(1,3,'hello')
console.log(arr,res)

在这里插入图片描述
直接插入新数据

var arr=[1,2,3,4,5,6]
var res=arr.splice(1,0,'hello')
console.log(arr,res)

在这里插入图片描述
返回值是一个空数组[]

当只有一个参数值时:表示截取从参数下标开始,到数组结束中间所有的元素

var arr=[1,2,3,4,5,6]
var res=arr.splice(1)
console.log(arr,res)

在这里插入图片描述
join()

​ 格式:数组.join(字符串)(参数可省略)

​ 功能:将数组中元素,用传入的拼接符,拼接成字符串(数组转成字符串),原数组不更改

​ 返回值:拼接成的字符串

var arr=[1,2,3,4,5,6]
var res=arr.join('-')
console.log(arr,res)

在这里插入图片描述
不传参:

var arr=[1,2,3,4,5,6]
var res=arr.join()
console.log(arr,res)

在这里插入图片描述
要想换取完整的,没有字符间隔的字符串可以传入一个空字符串

var arr=[1,2,3,4,5,6]
var res=arr.join('')
console.log(arr,res)

在这里插入图片描述

reverse()

​ 格式:数组.reverse()

​ 功能:逆序(将下标倒过来),改变原数组

​ 返回值:逆序之后的新数组

var arr=[1,2,3,4,5,6]
var res=arr.reverse()
console.log(arr,res)

在这里插入图片描述
sort()

格式:数组.sort(fn)

功能:对数组进行排序 ,默认从小到大排序。改变原数组

​ 参数:一个函数,代表要怎么进行排序(固定用法)

​ 返回值:排序好的新数组
注:排序是按照将每个元素转成字符串,然后按照字符串大小进行逐位比较的

var arr=[1,3,6,4,5,2]
var res=arr.sort()
console.log(arr,res)

在这里插入图片描述

var arr=[1,20,3,4,25]
var res=arr.sort()
console.log(arr,res)

在这里插入图片描述
假如我们按照数值排序,并且按照数值从小到大排序

var arr=[1,20,3,4,25]
var res=arr.sort()
var res=arr.sort(function(value,value2){
	return value>value2 // 或者可以value-value2
	 })
console.log(arr,res)

在这里插入图片描述
假如我们按照数值排序,并且按照数值从大到小排序

var arr=[1,20,3,4,25]
var res=arr.sort()
var res=arr.sort(function(value,value2){
	return value<value2 // 或者可以value2-value
	 })
console.log(arr,res)

在这里插入图片描述

练习:求平均数,定义一个数组,长度为30.按顺序赋予从2开始的偶数,然后按顺序每五个数求出一个平均数,放在另一个数组里

var arr=Array(30)
			var arr2=[]
			var count=0
			for(var i=0;i<arr.length;i++){
				arr[i]=2*(i+1)
				count+=arr[i]
				if((i+1)%5==0){
					arr2.push(count/5)
					count=0
				}
			}
			console.log(arr,arr2)

在这里插入图片描述
ECMA5新增数组方法:
indexOf()

​ 格式:数组.indexOf(item,start)

​ item:任意数据

​ start:下标(可省略,省略则默认是0)

​ 功能:在数组中查找第一次出现item这个元素的下标,从start下标开始查找

​ 返回值:1.如果查找不到,返回-1

​ 2.如果找到,返回第一次出现item的下标 (0<=)

var arr=[1,2,3,4,3]
			var res=arr.indexOf(3)
			console.log(res,arr)

在这里插入图片描述
如果要查找下一个3,可以添加第个参数start
在这里插入图片描述
如果找不到的item话,就会返回-1
在这里插入图片描述
总结:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值