**JavaScript的数组对象
数组:字面意思,数据的组合。 数组对象:使用单独的变量名储存一系列的值,一个容器储存多个元素。 数组项:元素。 typeof返回object,和object类似,但是他的存储效率比普通对象要高。 使用单独的变量名储存一系列的值,一个容器储存多个元素。
//单独的值
var aNames=["彭于晏","陈冠希","吴彦祖","小曹"];
//不同的对象
var aShuai=[{
name:"彭于晏",
prop:"长得帅",
},{
name:"陈冠希",
prop:"长得帅",
},{
name:"吴彦祖",
prop:"长得帅",
},{
name:"小曹",
prop:"长得帅",
}
]
**JavaScript数组的创建
1、通过字面量创建 [ ]
var arr=[1,2,3,4,5,6,7];
console.log(arr); //Array(7)
2、构造函数 new关键字 常规方式
var arr2=new Array();
//添加数组项/元素
arr2[0]="A";
arr2[1]="B";
arr2[2]="C";
console.log(arr2); //(3)['A','B','c']
//简写方式
var arr3=new Array("彭于晏","吴彦祖","陈冠希","小曹");
console.log(arr3);
注意:数组项为数字,且只有一个数组项时,会出现下面这种情况。
var arr4=new Array(10);
console.log(arr4); //(10)[empty x 10]
**JavaScript数组的访问
1、通过索引进行访问 索引:由0开始的整数,所有的数组都有索引
var arr3=new Array("彭于晏","吴彦祖","陈冠希","小曹");
console.log(arr3[0]);
console.log(arr3[1]);
console.log(arr3[2]);
console.log(arr3[3]);
for循环,遍历数组的项。
var arr3=new Array("彭于晏","吴彦祖","陈冠希","小曹");
for(var i=0,i<5,i++){
console.log(arr3[i]);
}
2、通过索引添加数组项
var arr3=new Array("彭于晏","吴彦祖","陈冠希","小曹");
arr3[4]="周星驰";
console.log(arr3); //(5)['彭于晏','吴彦祖','陈冠希','小曹','周星驰']
arr3[0]="成龙";
console.log(arr3); //(5)['成龙','吴彦祖','陈冠希','小曹','周星驰']
arr3[8]="周杰伦";
console.log(arr3); //(5)['成龙','吴彦祖','陈冠希','小曹','周星驰',empty x 2,'周杰伦']
console.log(arr3[7]); //undefined
**JavaScript数组对象的属性
- length:设置或返回数组元素的个数。
var arr=new Array("彭于晏","吴彦祖","陈冠希","小曹");
var arr2=["彭于晏","吴彦祖","陈冠希","小曹","周星驰"];
arr.length=10;
//若长度超过了原有数组的长度,则超出的部分为undefined
console.log(arr); //(10)['彭于晏','吴彦祖','陈冠希','小曹','周星驰',empty x 6]
- constructor:返回创建数组对象的原型函数。
- protopyte:允许数组对象添加属性或方法。
**JavaScript数组的方法
(1)concat()连接两个或多个数组,并返回结果
var arr1=[5,6,7];
console.log(arr.concat(arr1));//(7) [1, 2, 3, 4, 5, 6, 7]
(2)pop()删除数组最后一个元素,并且返回删除的元素
console.log(arr.pop());//4
(3)push()向数组末尾添加一个或多个元素,并返回新的长度
console.log(arr1.push(8,9));//5
(4)shift()删除并返回第一个元素
console.log(arr1.shift());//5
(5)unshift()向数组开头添加一个或多个元素,并且返回长度
console.log(arr1.unshift(0,1,2,3));//8
(6)slice(开始索引,结束索引)选取数组的一部分,并返回新的数组
var arr2=[1,2,3,4,5,'A','B','C'];
console.log(arr2.slice(0,3));//留头不留尾
console.log(arr2);//原数组不变
(7)splice(开始索引,截取长度,添加元素)从数组中添加或者删除元素
console.log(arr2.splice(1,4));//2,3,4,5
console.log(arr2.splice(1,3,'D','E','F'));
(8)indexof()搜索数组中的元素,并返回其所在的位置,如果找不到被检索元素,返回-1
var arr3=[1,2,3,4,'A','B','C',2,3,4]
console.log(arr3.indexOf('B'));//5
console.log(arr3.indexOf('E'));//-1
(9)lastindexof()搜索数组中的元素,并返回元素最后所在的位置
console.log(arr3.lastIndexOf(2));
(10)split()将字符串转化为数组
console.log(arr3);//[1, 2, 3, 4, 'A', 'B', 'C', 2, 3, 4]
(11)reserse()=反转数组元素的数据
console.log(arr3.reverse());//[4, 3, 2, 'C', 'B', 'A', 4, 3, 2, 1]
console.log(arr3);//[4, 3, 2, 'C', 'B', 'A', 4, 3, 2, 1] 改变原数组