数组常用api(ES3)
操作方法
push():数组末尾添加数据
pop():删除数组末尾最后一个数据,返回被删除的数据
unshift():数组开头添加一个多个数据
shift():删除开头的数据
splice():数组指定位置进行插入或删除数据
数组转字符串的方法
join():能够将数组里的数据拼接转为字符串
查询方法
indexOf():获取某数据在数组中的第一次出现的下标,没有的话返回-1
lastIndexOf():获取某数据在数组中的最后一次出现的下标,没有的话返回-1
排序方法
sort(): 对数组进行排序
reverse():数组倒序存放
数组的合并和截取
concat():和一个或多个数组进行合并,得到一个新数组
slice():根据下标获取数组中的部分数据
ES5新增的api
forEach():遍历数组
数组的专属遍历,可以用于替代for循环
arr.forEach(function (value, index, array) {
// 每次遍历会将数组中的每个数据放入函数中执行一次
value:遍历的数组中某个数据
index:遍历的数据的下标
array: 被遍历的数组本身
console.log(value, index, array);
})
流程:当遍历数组时,forEach会将数组中的每个数据都放入function函数中,把数据以及对于的下标和原数组本身作为实际参数传过去进行处理
map()
遍历数组,会将每次遍历处理后的结果,通过return返回的数据加入到新的数组中并返回
语法:
var 变量名= arr.map(function (value, index, array) {
value:遍历的数组中某个数据
index:遍历的数据的下标
array: 被遍历的数组本身
将return返回的数据,形成新的数组并返回,如果没有return,那么新数组中的每个数据都是undefined
})
注意:
原数组不会发生改变
新数组和原数组长度是一样的
filter()
遍历数组,同时筛选满足条件的数据,并形成一个新的数组
语法:
var 新数组变量名 = arr.filter(function (value, index, array) {
// 每次遍历会将数组中的每个数据放入函数中执行一次
value:遍历的数组中某个数据
index:遍历的数据的下标
array: 被遍历的数组本身
将满足return后面的条件的value返回构成新数组,不满足return后面条件的数据不返回
})
注意:
在filter方法中设置return 筛选条件,最终将满足筛选条件的value形成新的数组
对原数组没有数组
新数组和原数组的长度不一定一样
新数组中的数据都是来自于原数组的
some()
遍历数组,用于判断某个遍历的数据是否满足指定的条件,只要有一个满足条件,则最终返回true,否则返回false
语法:
var 变量名 = 数组变量名.some(function(value,index,array){
// 每次遍历会将数组中的每个数据放入函数中执行一次
value:遍历的数组中某个数据
index:遍历的数据的下标
array: 被遍历的数组本身
通过return对value进行处理并判断,如果满足,则返回true,否则返回false
})
注意:
some最后返回的数据类型是布尔类型
对原数组没有影响
some是一真则真,全假则假
every()
遍历数组,用于判断某个数据是否满足指定的条件,如果都满足,则返回true,否则返回false
语法:
var 变量名 = 数组变量名.every(function(value,index,array){
// 每次遍历会将数组中的每个数据放入函数中执行一次
value:遍历的数组中某个数据
index:遍历的数据的下标
array: 被遍历的数组本身
通过return对value进行处理并判断,如果全部都满足,则返回true,否则返回false
})
注意:
every返回的数据类型是布尔类型
对原数组没有影响
every是全真则真,一假则假
reduce()
遍历数组,传入初始值,对每个数据进行累计操作,最终将累计处理后的结果返回,比如累加、累积等等
语法:
var 变量名=数组变量名.reduce(function(data,value,index,array){
// 每次遍历会将数组中的每个数据放入函数中执行一次
data:是指将经过上一次遍历数据处理之后的的数据
value:遍历的数组中某个数据
index:遍历的数据的下标
array: 被遍历的数组本身
需要将处理后的数据return,方便下一次遍历进行处理
},data的初始值)
例子:
所有数据的总和
var result= arr.reduce(function(data,value){
return data+value;
},0)
// 箭头函数
var result= arr.reduce((data,value)=>data+value,0);
注意:
原数组不会发生改变
reduce返回的累计后的结果
ES7新增api
includes()
用于判断一个数组中是否包含指定的数据,如果包含则返回true,不包含则返回false
语法:
1.查找数组中是否包含指定的数据
var 变量名 = 数组变量名.includes(数据)
2.从指定的下标开始查找,是否包含指定的数据
var 变量名 = 数组变量名.includes(数据,开始查找的下标)
例子:
var arr = [34, 45, 63, 67, 47, 65,"a"];
var result= arr.includes(65);//true
var result= arr.includes(45,2);//false
var result= arr.includes("A");//false
注意:
includes返回的结果是布尔类型
对原数组没有影响
比较字符串或字符时,是区分大小写的(JavaScript中都是严格区分大小写)
版权声明:本文为weixin_44241079原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。