前言:数组形式的数据结构在开发中是经常用到的,所以我在此总结一篇,顺便复习复习知识
什么数组:
数组呢,在书写上就是用方括号[]括起来,括起来的数据类型,可以是任何数据类型,可以是基本类型:String,Number,Boolean,NaN 也可以是引用数据类型:object,Arrray,Function
这里有个小问题,基本类型和引用类型的区别?
数组的创建:
- var myCars=new Array();
myCars[0]="Saab";
myCars[1]="Volvo";
myCars[2]="BMW";
2.上述的简写:var myCars=new Array("Saab","Volvo","BMW");
3.字面形式书写:var myCars=["Saab","Volvo","BMW"];===用的频率高
数组的检测:
1.数组自带的Array.isArrsy(被检测的数据)
2.instaceof操作符
3.被检测是数据.constructof ==Array
数组的属性和方法
arr.length ===得到的是这个数组的长度
var y=myCars.indexOf("Volvo") // "Volvo" 值的索引值,注意:如果Volvo不在数组中,返回的是-1
感兴趣的可以打印看一下
数组中的方法详解:
1. arr.concat(newArr)
作用:合并数组
返回值:一个新的数组,不会更改原数组arr
2.arr.join()
作用:数组转字符串
返回值:字符串,不会更改原数组
3.数组的增删改查,返回值:数组,都会更改原数组
arr.push (尾增) arr.unshift(头增)
arr.pop()尾删 arr.shift(头删)
4.sort数组的升序与降序
返回值:数组,会更改原数组
5.arr.filter(()=>{})
返回值:数组,返回满足条件的所有元素,
6.arr.find(()=>{})
返回值:返回满足条件的第一个元素,无满足条件的元素返回的是undefined,不会影响原数组
与find类似的还有一个findIndex,查找到满足条件的就会返回的对应下标
7.arr.foreach
无返回值,for循环的简写
8.arr.map(()=>{})
返回值:数组,对数组的每个元素进行同等映射
9.arr.some()
返回值:布尔值,只要有一项元素满足条件,即可返回true
10.arr.every()
返回值:布尔值,只要有一项元素不满足条件,就会返回false
11. arr.reduce((memo,current)=>{},[])
返回值:一个全新的数组,reduce函数种两个参数,参数一:是函数 在函数种处理逻辑,参数二是累计器, 参数一函数的参数:参数一,是上述的累计器,参数二:是当前的循环项,注意,此函数一定要return
let arr = [1, 2, 3].reduce((memo, current
) => {
return memo.push(current += 1)
}, [])
console.log('arrr', arr) //[2,3,4]