解释:Array
(数组)对象用于在单个的变量中存储多个值。
第一节 基本应用
数组定义
//数组:一次性申请一批存储空间 - 引用类型
//var num = 3; //基本数据类型
//数组声明方式:可存放任意数据类型,并通过索引来访问每个元素
var arr = new Array();
var arr = [];
字面量方式定义
var arr = ["张三","李四"];
向数组赋值
arr[0] = "张三";
arr[1] = " 李 四 ";
alert(arr[0]+","+arr[1]);
数组索引
与对象一样,数组是数值的集合,不同的是对象中每个数值都有一个名字,可以用名字获取对应的值,而数组的每个数值都有一个下标值,用数组
[
下标值
]
alert(arr[0]+","+arr[1]);
数组长度
length
属性可以设置或返回数组元素的个数,
length
属性的值总是比数组定义的最后一个元素的索引值大 1
//语法
arr.length
//最后一个元素的索引
arr.length-1
修改数组中的值
var arr = ["A"," 李 四 ","C"];
arr[1] = "李四他哥"; //修改元素
arr; //["A","李四他哥","C"];
数组越界
请注意:如果通过索引赋值时,索引超过了范围,同样会使数组大小发生变化
var arr = [1,2,3];
arr[5] = "t";
arr;//arr 变为[1,2,3,undefined,undefined,"t"];
第二节 数组方法
indexOf
数组可以通过
indexOf()
来搜索一个指定的元素的位置,如未找到返回
-1
;
var arr = [10,20,"30","abc"];
console.log(arr.indexOf(10)); //元素 10 的索引为 0
console.log(arr.indexOf(30));//元素 30 未找到,返回-1 //注意:数字 30 和字符串"30"是不同元素
concat
concat()
方法把当前的数组 和 另一个 数组连接起来,并返回一个新的 数组;
var arr1 = ["a","b","c"];
var arr2 = [1,2,3];
var newArr = arr1.concat(arr2,"再次添加");
newArr; //["a","b","c",1,2,3,"再次添加"]; arr1; //["a","b","c"]
push
和
pop
push()
向数组的末尾添加若干元素,
pop()
则把数组的最后一个元素删除掉
var arr = [1,2];
arr.push("a","b");
console.log(arr);//[1,2,"a","b"]
arr.pop(); //pop() 返回“b”;
arr; //打印[1,2,"a"]
arr.pop();arr.pop();arr.pop(); //连续 3 次
pop arr; //打印[] arr.pop(); //空数组继续 pop 不会报错,而是返回 undefined
arr;//打印[]
unshift
和
shift
unshift()
向数组前面添加若干元素,
shift()
则把数组的第一个元素删除掉
var arr = [1,2];
arr.unshift("a","b"); //返回新长度 4
arr;//打印["a","b",1,2]
arr.shift();//返回"a"
arr; //打印["b",1,2]
arr.shift();arr.shift();arr.shift(); //连续 3 次
arr; //打印[]
arr.shift(); //空数组继续删除不报错,返回 undefined
arr; //打印[]
slice
slice()
截取数组的部分元素,然后返回一个新的数组
var arr = ["a","b","c","d","e","f","g"];
console.log(arr.slice(0,3)); //从索引 0 开始,到索引 3 结束,但不包括 3:["a","b","c"]
console.log(arr.slice(3)); //从索引
3 开始到结束:"d","e","f","g"
如果不给
slice()
传递任何参数,他就会从头到尾截取所有元素。利用这一点,可以很容易的复制一份新的数组
var arr = [1,2,3];
var aCopy = arr.slice();
aCopy; //[1,2,3]
sort
sort()
可以对当前数组排序
var arr = ["b","c","a"];
arr.sort();
arr;//["a","b","c"]
reverse
reverse()
把整个数组的元素给掉个个,也就是反转
var arr = ["one","two","three"];
arr.reverse();
arr; //["three","two","one"]
join
join()
方法把数组的每个元素用指定的字符串连接起来,然后新的字符串
var arr = ["a","b","c",1,2,3];
arr.join("-"); //"a-b-c-1-2-3"
splice
splice()
方法是修改数组的
“
万能方法
”
,他可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素;
//splice(索引值,删除数量,"值 1","值 2");
var arr = ["苹果","橘子","香蕉","芋头","桂圆","山楂"];
//从索引 2 开始删除 3 个元素,然后再添加两个元素
arr.splice(2,3,"白梨","西瓜");
console.log(arr); // "苹果","橘子","白梨","西瓜","山楂"
//只删除,不添加
arr.splice(2,2); //"白梨","西瓜"
console.log(arr); //"苹果","橘子","山楂"
//只添加,不删除
arr.splice(2,0,"白梨","西瓜");
console.log(arr);// "苹果","橘子","白梨","西瓜","山楂"
第三节 二维数组
如果数组的某个元素又有一个数组,则可以形成多维数组,例如:
var arr = [[1,2,3],["a","b","c"],500];
var x = arr[1][1]; //b