js中数组的基本知识

数组
存放多个值的集合,值被称为元素,元素可以为任意类型的值
1.实例化
1)字面量
使用中括号作为边界,元素与元素之间逗号分隔
var arr = {“terry”,“larry”,true,function(){},1}
2)构造函数
var arr= new Array();
var arr= new Array(3); //创建一个数组,长度为3
var arr= new Array(true); //创建一个数组,其中有一个元素为true,等价于[true]
var arr= new Array(3,4); //等价于[3,4]
2.数组访问
中括号访问,索引,索引从0开始第一个元素,数组的长度为length,在js中不存在数组越界异常,arr[100],返回值为undefined
3.数组遍历
三种基本遍历 while do-while for
for-in
api 简洁
4.api
引用程序编程接口(库)
1)静态方法(构造函数方法)
Array.isArray(arr) es5
判断参数arr是否是数组
Array.of() es6
将参数放到数组中返回
Array.of(3) 返回[3]
2)非静态方法(实例方法,构造函数原型中的方法)
1.循环类
Array.prototype.forEach(handler)
作用:遍历指定数组
参数:回调函数,可以接受三个参数item,index,arr
forEach方法每次遍历出来一个元素后都会再次执行回调函数
返回值:undefined
arr.forEach(function(item,index,arr){
item为每次遍历出的元素
index遍历时的索引
arr为当前正在遍历的数组
})
Array.prototype.every(handler)
作用:遍历指定数组,判断是否每个元素都满足指定条件
参数:回调函数,可以接受三个参数item,index,arr,该回调函数会返回一个boolean值,当所有回调函数都返回true,最终every方法的结果为true,当有一个回调函数返回了false,该函数终止,返回flase
返回值:boolean
arr.every(function(item,index,arr){
return 条件;
})
Array.prototype.some(handler)
作用:遍历指定数组,判断是否有元素满足条件
参数:回调函数,可以接受三个参数item,index,arr,该回调函数会返回一个boolean值,只有回调函数也返回true,最终every方法的结果为true,当有所有的回调函数返回了false,该函数返回false
返回值:boolean
arr.some(function(item,index,arr){
item为每次遍历出的元素
index遍历时的索引
arr为当前正在遍历的数组
})
Array.prototype.map(handler)
作用:从指定元素中映射出某些值组成新的数组返回
参数:回调函数,可以接受三个参数item,index,arr,该回调函数会返回一个数组,数组元素为每个回调函数返回的值
返回值:数组
arr.map(function(item,index,arr){
return
})
Array.prototype.filter(handler)
作用:从指定元素中过滤满足条件的元素,组成新的数组返回
参数:回调函数,可以接受三个参数item,index,arr,该回调函数会返回一个数组,数组元素为每个回调函数返回的值为true的那个元素
返回值:数组
arr.filter(function(item,index,arr){
return
})
2.栈方法
后进先出
Array.prototype.push(v) [原值改变]
作用:为指定数组添加元素,该元素添加到数组的末尾 入栈
参数:可以多个任意类型的数组
返回值:数组的长度
var arr = [1,2,3];
var result = arr.push(4,5,6);
Array.prototype.pop(v) [原值改变]
作用:出栈,将数组末尾的值删除并返回
参数:
返回值:出栈的元素
var arr = [1,2,3];
arr.pop();
3.队列方法
先进先出
Array.prototype.shift(v) [原值改变]
作用:出队列,将数组开头的值删除并返回
参数:
返回值:出队列的元素
var arr = [1,2,3];
arr.shift();
Array.prototype.unshift(v) [原值改变]
作用:在数组开头插入一个数值并删除,返回数组长度
参数:值
返回值:数组长度
var arr = [1,2,3];
arr.unshift();
4.排序
反转序列
Array.prototype.reverse(v) [原值改变]
作用:将数组中的元素反转
参数:
返回值:反转之后的数组
arr.reverse()
Array.prototype.sort(v) [原值改变]
作用:排序,如果没有参数,将会按照字符串的顺序进行排序,如果是其他类型,要先转换成字符串类型;如果参数是比较器函数,则按照比较器函数规则进行排序
参数:无,或者比较器函数
比较器函数接受两个参数,a,b,当a>b时返回1升序,a<=b时返回-1
当比较器函数返回值大于0,a排在b的后面
返回值:排序之后的数组
arr.sort()
5.数组分割函数
Array.prototype.slice(begin,end) [原值不改变]
作用:从指定数组中获取子数组
参数:begin开始位置 end结束为止,不包含结束位置,end可以省略,截取到数组的末尾
返回值:截取的数组
Array.prototype.splice(begin,len,a,b,c) [原值改变]
作用:删除替换插入
参数:begin开始位置 len标识删除的元素个数 a,b,c表示插入的元素
返回值:删除元素组成的数组
6.数组元素查找
Array.prototype.indexOf(begin,end)
作用:从数组前往后查找item所在的索引,找到之后不再寻找
参数:要查找的元素值
返回值:索引
Array.prototype.lastindexOf(begin,end)
作用:从数组后往前查找item所在的索引,找到之后不再寻找
参数:要查找的元素值
返回值:索引/-1
7.数组合并
Array.prototype.concat() [原值不改变] 深拷贝
作用:合并数组
参数:数组
返回值:合并后的数组
8.数组的序列化
Array.prototype.join(s)
将数组转换为字符串,通过s分割开数组中每个元素
JSON.stringfy() es标准
querystring.stringfy() nodejs,浏览器(第三方)

		9.拓展
			1)mdn拓展,其他es标准的api
			2)第三方库
				lodash.js
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值