数组
-
数组:一组数据的集合,数组的每一个数据叫做一个元素
-
数组元素可以是任何类型,同一个数组中的不同元素可能是对象或数组
-
每个数组都具有一个length属性,通过该属性可以获取数组长度,并且可以给一个数组length赋值定义长度
-
数组中每个元素在数组中有一个位置,以数字表示,称为索引(下标)
-
索引从0开始排列,[0]表示第一个数据,以此类推
-
数组的数据类型是一个对象,其实就是个加了数字索引和length属性的特殊对象
数组创建方法
隐式方法
var arr = ["梨子", "橙子", "橘子"];
var arr2 = [1, "小张", true, ["OliGit", 2], {
}];
var arr3 = [];
直接实例化,通过构造函数Array()创造
// 1.直接把数组元素写到括号里
var arr = new Array("OliGit", 12, "哈哈");
// 2.创建数组并给数组元素赋值
var arr2 = new Array();
arr2[0] = "haha";
arr2[1] = "heiha";
arr2[2] = "heihei";
// 3.规定数组初始的长度,并给数组元素赋值;数组长度动态调整
var arr3 = new Array(3);
arr3[0] = "haha";
arr3[1] = "heiha";
arr3[2] = "heihei";
arr3[3] = "hihihi";
arr3[4] = "enenen";
数组基本操作
arr.toString()
:将数组转换为字符串,保留逗号arr.join(“分隔符”)
:将数组转成一个字符串,原来的数组会保留;参数为分隔符,省略的话则用默认逗号作为分隔符Array.from(str)
:将伪数组转成数组,只要有length属性的就可以转成数组arr.pop()
:移除数组末尾最后一项,减少数组的length值,然后返回移除的元素,而且会直接修改原数组arr.push()
:用于向数组的末尾添加一个或多个元素,并返回修改后数组的长度,而且会直接修改原数组arr.shift()
:删除数组开头第一项,减少数组的length值,然后返回移除的元素;而且会直接修改原数组arr.unshift()
:用于向数组的开头添加一个或多个元素,并返回修改后数组的长度,而且会直接修改原数组arr.splice()
:实现删除,插入,替换,截取,返回值为截取的数组元素,而且会直接修改原数组
a、参数一:起始位置索引
b、参数二:截取元素个数,如果是插入元素即为0
c、参数三:插入的元素(可选),可以同时插入多个元素arr.slice(开始下标,结束下标)
:截取指定下标的数组或字符串元素,返回截取的数组元素,不会修改原数组
a、如果省略结束下标,则截取后面所有元素
b、截取不包含结束下标的元素
c、可以为负值arr.indexOf()
:查找指定元素的下标,从前往后查找;若有重复,则返回第一个查到的下标;若不存在,则返回-1arr.lastIndexOf()
:查找指定元素的下标,从后往前查找;若有重复,则返回第一个查到的下标;若不存在,则返回-1arr.concat()
:合并两个或多个数组;返回一个新的数组,不会修改原数组,也可以在concat方法中直接添加元素arr.reverse()
:反转数组元素的顺序,会修改原数组;返回值并不是排序后的数组,而是数组的引用arr.sort(比较函数)
:用于对数组的元素进行排序
a、默认:无参数情况下,按升序排序数组项,即最小的值位于最前面,最大的值排在最后面;会修改原数组;会转成字符串再比较,并从第1个字符进行比较
b、参数为比较函数,规定数组排序顺序;比较函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字
c、比较函数应该有两个参数 a 和 b,其返回值如下:
(1)、若a 小于 b,在排序后的数组中 a 应该出现在b 之前,则返回一个小于0的值
(2)、若a 等于 b,则返回0
(3)、若a 大于 b,则返回一个大于0的值
<script>
// 升序排列
function asc(a, b){
if(a<b){
return -1;
}else if(a>b){
return 1;
}else{
return 0;
};
};
// 降序排列
function des(a, b){
if(a<b){
return 1;
}else if(a>b){
return -1;
}else{
return 0;
};
}
var arr = [12, 1, 35, 3, 9, 34];
var b = arr.sort(des);
alert(arr);
alert(b);
</script>
arr.filter(过滤函数)
:把数组中的某些元素过滤掉,然后返回剩下的元素,接收的是一个回调函数;数组中的每一项运行给定函数,返回满足过滤条件组成的新数组,不会修改原数组
<script>
function guolv(x){
return x>