数组概念:
存储大量数据。可以使用一个变量名,存储大量的数据。
三种声明方式:
1、通过new运算符创建数组
var arr = new Array(10, 20, true, "hello");
2、省略new运算符创建数组
var arr = Array(10, 20, true, "hello");
3、直接通过常量赋值(JS弱引用,数组中可以存储任意的数据类型)
var arr = [10, 20, true, "hello”];
重点:使用 new Array Array 创建数组的时候,当参数是数字,并且只有这一个参数的时候,生成一个对应长度的空数组。
var arr = new Array(10);
var arr = Array(10);
alert(arr);
访问数组的属性:
arr.length 输出数组中元素的个数
访问数组中的元素:
通过元素的下标访问,【注】元素下标从0开始的。
var arr = [10, 20, 30];
alert(arr[2]);
arr[0] = "hello";
alert(arr);
数组的方法:
栈结构:先进后出 push pop
通过数组的方法:元素只能从同一头出,同一头进。**
push
格式:数组.push(参数1, 参数2…);
功能:给数组的末尾添加元素。
返回值:添加完元素以后,数组的长度
var arr = ["超人", "海王", "蝙蝠侠"];
var res = arr.push("神奇女侠", "闪电侠");
alert(arr);
alert(res);
pop
格式:数组.pop()
功能:从数组的末尾取一个元素下来
返回值:取下的元素
var arr = ["超人", "海王", "蝙蝠侠"];
var res = arr.pop();
alert(res);
alert(arr);
队列结构:先进先出 push shift
通过数组的方法:从尾部插入元素,从头部取下元素。
shift
格式:数组.shift()
功能:从数组头部取元素下来。
返回值:从数组头部取下的元素。
var arr = ["钢铁侠", "雷神", "绿巨人"];
var res = arr.shift();
alert(res);
alert(arr);
unshift 从数组的头部插入元素
格式:数组.unshift(元素…);
功能:从数组头部插入元素
返回值:插完元素以后数组的长度。
var arr = ["超人", "海王", "蝙蝠侠"];
var res = arr.unshift("神奇女侠", "闪电侠");
alert(arr);
alert(res);
数组方法:
concat()
格式:数组.concat(数组1, 数组2, 变量/常量…);
功能:将这些数组中的元素,全部合并成一个新数组。不会修改原数组。
返回值:返回值就是生成的新数组。
[注]concat() 没有传入参数,直接生成一个一模一样的新数组,返回。
var arr1 = [10, 20, 30];
var arr2 = arr1;
arr2[1] = "hello";
alert(arr1);
alert(arr2);
slice
格式:数组.slice(start, end);
功能:获取[start, end)下标范围内的元素,生成新数组,不会修改原数组。
返回值:生成的新数组。
var arr = [10, 20, 30, 40, 50, 60, 70];
var newArr = arr.slice(2, 5);
alert(newArr);
alert(arr);
splice()
格式:数组.splice(start, length, 元素1, 元素2 …);
参数:第一个参数,开始截取的下标
第二个参数,截取的元素长度
第三个参数往后,在开始位置插入的元素
增/删/改
var arr = ["扫地僧", "无崖子", "一灯大师", "鸠摩智"];
/*arr.splice(2, 0, "乔峰", "天山童姥");
alert(arr);*/
/*arr.splice(2, 1);
alert(arr);*/
arr.splice(1, 1, "周伯通");
alert(arr);
join
格式:数组.join(拼接符);
功能:将数组中每一个元素,通过拼接符,拼接成一个字符串
返回值:字符串
var arr = [10, 20, 30];
// alert(arr);
var str = arr.join("==");
alert(str);
alert(arr);
reverse() 逆序
功能:对原数组逆序
格式:数组.reverse()
var arr = [10, 20, 30, 40];
arr.reverse()
alert(arr);
sort()
【注】默认是按照字符串升序排序
参数:是一个函数
function(value1, value2){
return value1 < value2;
} 降序排列
function(value1, value2){
return value1 > value2;
} 升序
var arr = [1, 20, 15, 10, 5];
arr.sort(function(value1, value2){
return value1 < value2;
})
alert(arr);