文章目录
Array的概念
Array是对象的一种子类型,属于引用数据类型。同时array是一种有序列表,且列表内的元素可以是任意数据类型,这是和其他语言中的数组大相径庭的地方其格式为[元素1,元素2,元素3,元素4]
一、Array的声明
1.字面量形式声明:
var arr = [1,2,3];
构造了一个长度为3,内容为1,2,3的数组
2.构造函数声明
情况一
var arr = new Array(10);
构造了一个长度为10的空数组
情况二
var arr = new Array(10,1,2,3);
构造了一个长度为4,内容为10,1,2,3的数组
情况三
var arr = new Array("10");
构造了一个长度为1,内容为“10”的数组
由此可见当使用构造函数声明数组时,当传入参数只有一个且为number类型时,会将其作为生成数组的长度
二、访问参数&常用方法
1.访问参数:
数组的参数由下标调用,下标从0开始
console.log(arr[0]);
在控制台输出arr数组的第一个元素
2.方法
1、栈方法
push()
在一个数组的末尾添加任意数量的任意元素,返回新数组的长度
pop()
删除数组的最后一个元素,并将其作为返回值
2、队列方法
shift()
删除数组的第一个元素,并将其返回
unshift()
在数组的前端添加任意数量的任意元素,并返回新数组的长度
3、操作方法
concat()
连接多个数组,最后返回的结果存放在第一个作为参数的数组的内存地址中
slice(a,b);
从a位置开始到b位置结束建立新数组(不包含b位置)
第二个参数为-1时,那就表示到最后一个元素的位置
splice(a,b,c);
从a位置开始的b个元素被替换为c
4、重排序方法
reverse()
数组顺序反转
sort()
数组元素按照ASCII码的值来排序
5、位置方法
indexof(a,index)
从开头寻找与a===的字符,找到第一个后返回其下标,如果查找不到则返回-1
lastindexof()
与indexof一样,只不过从末尾开始寻找
6、迭代方法
每一种迭代方法的参数有两个:都是function其中含有三个参数(item,index,array),和this
every():对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。
filter():对数组中的每一项运行给定函数,返回该函数会返回true 的项组成的新数组。
forEach():对数组中的每一项运行给定函数。这个方法没有返回值。
map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
some():对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。
7、归并方法
每一个归并方法都接受这样一个方法作为参数:function(prev(前一项的值), cur(当前项的值), index(下标), array(数组)),以及一个任意类型的参数{}其返回值作为下一项的prev
reduce(function(prev,cur,index,array){
console.log(prev,cur);//第一次的prev为数组的第一个元素,第二次的cur为数组的第二个元素,第二次以后的prev为undefined
})
reduce(function(prev,cur,index,array){
console.log(prev,cur);//第一次的prev为reduce的第二个参数,第一次的cur为数组的第一个元素,第二次以后的prev为上一次的返回值
},任意参数)
reduceRight()