一、用构造函数的方式定义
1、var arr = new Array(); //定义了一个空数组,里面啥也没有
2、var arr = new Array(5); // 定义了一个数组,里面有五个元素(五个变量),这五个变量没有值;
3、var arr = new Array("刘健锋","梁瑛","李易峰","宝宝"); //定义了一个数组,里面有4个元素,值已经赋好了。
二、字面量的方式
1、var arr = [];//等价于:var arr = new Array();
2、var arr = ["刘健锋","梁瑛","李易峰","宝宝"];//等价于: var arr = new Array("刘健锋","梁瑛","李易峰","宝宝");
3.var arr = ["刘健锋","梁瑛",12,23,true,false,null,undefined];//等价于: var arr = new Array("刘健锋","梁瑛","李易峰","宝宝");
三、数组的length属性和索引
length:表示数组的长度,就是数组中元素的个数。 // console.log(arr.length); //4
索引:又叫作下标。
// 1、下标就是数组中元素的序号,从0开始;最大下标是:数组.length-1
// 使用数组中元素的格式:arr[下标];
arr[12,23,34,45] // console.log(arr[0]); //12
// 2、下标可以是变量,也可以是表达式
var i=0;
//var arr = [12,23,34,45]
// console.log(arr[i]); 等价于 arr[0] //12
// console.log(arr[i+1]); 等价于 arr[1] //23
// console.log(arr[(i+1)*2]); 等价于 arr[2] //34;
四、遍历数组
遍历数组就是指把数组的所有元素过一遍
一、for循环遍历数组(灵活)
function fn(){
var arr = [12,23,34,45,56];
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
// 把数组的从第一个到倒数第二个元素过一遍,(不要最后一个元素)
for(var i=0;i<arr.length-1;i++){
console.log(arr[i]);
}
}
二、for in遍历数组
function fn(){
var arr = [12,23,34,45,56];
for(var i in arr){
console.log(arr[i]);
}
}
三、for in 循环和普通for循环的区别
// 1、在循环数组时
// for in 循环给循环变量赋值为 字符串类型,for in循环必须把所有的元素要循环一遍,
// 普通的for循环给循环变量赋值为 数字类型,普通的for的循环,可以控制循环哪些元素。更加灵活
// 2、循环对象:
// for in循环可以循环对象
// 普通for循环,没法直接循环对象。
// 3、扩展:
// 用forin循环数组时,就是把数组当作了对象处理,下标就是键(键就是属性名;)。浏览器在处理数组时,会(可以)把它当作对象。
// 如:这个数组 var arr = [12, 23, 34, 45, 56];
// 当作对象后,就是这:
// arr={
// "0":12,
// "1":23,
// "2":34,
// "3":45,
// "4":56,
// }
五、数组的常用官方函数
1、push:添加元素:在数组的末尾增加一个元素,
// var arr=[12,23];
// console.log(arr);
// arr.push(34);
// console.log(arr.length); ==>3
// console.log(arr) ==>[12,23,34]
2、pop():删除元素:删除数组里最后一个元素,返回值就是被删除的元素
// var t = arr.pop();
// console.log(t);
// console.log(arr);
3.unshift():添加元素: 在数组的开始添加
// arr.unshift(‘宝宝和宝宝的宝宝的宝宝‘);
// console.log(arr);
4.shift(): 删除元素: 在数组的开始删除
5.splice():给数组既可以添加元素,也可以删除元素,关键是它可以在在指定下标删除,或者添加
var arr = [‘关羽‘,‘李逵‘,‘刘备‘,‘武松‘,‘宋江‘,‘张飞‘,‘卢本伟‘]
// arr.splice(2,0,"William");//在下标2的位置插入了 William,删除了0个元素
// arr.splice(2,1,"William");//把下标为2的元素删除掉了(刘备),在下标2的位置插入了 William
// arr.splice(2,3,"William");//删除元素:从下标2开始删除3个,插入元素:在下标2的位置插入了 William
// arr.splice(2,3,"William","William他哥",);
// console.log(arr);
6、concat():拼接数组,把两个数组拼接起来,也可以拼接元素
// concat():可以给数组的末尾增加元素,但是concat并不会改变原始的数组,concat的返回值是添加元素后的结果
// var a = [1,2,3];
// console.log( a.concat(4,5) ); //[1, 2, 3, 4, 5]
// console.log(a); //[1, 2, 3]
// a.push(4,5);
// console.log(a); //[1, 2, 3, 4, 5]
// console.log(a.concat([6,7,8]));
7、reverse:把数组的元素进行翻转(颠倒顺序)
// arr.reverse();
// console.log(arr);
// var arr=[1,2,3,4,5,6,7]
// arr.reverse();
// console.log(arr); ==>[7,6,5,4,3,2,1]
8、slice():从数组里取出一部分元素(根据起始下标和结束下标),不会改变原来的数组
// var arr=[1,2,3,4,5,6,7]
// // console.log(arr.slice(2));
// console.log(arr.slice(2,5));//从下标2开始取到 下标 5
// console.log(arr);
9、sort():sort函数只能排序字符串,不能排序数字
// var arr=[‘t‘,‘f‘,‘b‘,‘a‘];
// arr.sort();
// console.log(arr);
// var arr=[12,23,5,9,21];
// arr.sort();
// console.log(arr); ==>[12,23,5,9,21];这个排不成,因为是数字。
10、join()增加连接符号,不会改变原来的数组
// var arr = new Array(3)
// arr[0] = "George"
// arr[1] = "John"
// arr[2] = "Thomas"
// // var str = arr.join(".");
// // var str = arr.join();
// var str = arr.join("-");
// console.log(typeof str); ==> string
// console.log(str); ==> George-John-Thomas