JavaScript学习的第六天

**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:设置或返回数组元素的个数。获取的值比数组最大索引+1

var arr=new Array("彭于晏","吴彦祖","陈冠希","小曹");
var arr2=["彭于晏","吴彦祖","陈冠希","小曹","周星驰"];
arr.length=10;
//若长度超过了原有数组的长度,则超出的部分为undefined
console.log(arr);  //(10)['彭于晏','吴彦祖','陈冠希','小曹','周星驰',empty x 6]
arr.length=3;
console.log(arr);  //(3)['彭于晏','吴彦祖','陈冠希']
//若长度小于原数组的长度,删除超出部分的元素

可在for循环中使得声明的对象长度与数组的length进行比较。 

- constructor:返回创建数组对象的原型函数。

console.log(arr.constructor);  //f Array() {[native code]}

通过哪个函数构造传来的,返回哪个函数。

- prototyte:允许数组对象添加属性或方法。

Array.proptype.name="周星驰";
var arrx=new Array();
console.log(arrx.name);  //周星驰

**JavaScript数组对象的方法

(1)concat()连接两个或多个数组,并返回结果,原数组不变。

var arr1=[1,2,3];
var arr2=[4,5,6];
var arr3=["A","B","C","D","E","F","G"];
console.log(arr1.concat(arr2));//(7) [1, 2, 3, 4, 5, 6]
console.log(arr1.concat(arr2,arr3));

(2)pop()删除数组最后一个元素,并且返回删除的元素,改变原数组。

console.log(arr1.pop());//3
console.log(arr1);//1,2

(3)push()向数组末尾添加一个或多个元素,并返回新的长度,改变原数组。

console.log(arr1.push(8,9));//5  新数组的长度
console.log(arr1);//1,2,3,8,9

(4)shift()删除并返回第一个元素,改变原数组。

console.log(arr1.shift());//1

(5)unshift()向数组开头添加一个或多个元素,并且返回长度,改变原数组。

console.log(arr1.unshift(0,1,2,3));//7

(6)slice(开始索引,结束索引)选取数组的一部分,并返回新的数组

var arr2=[1,2,3,4,5,'A','B','C'];
console.log(arr2.slice(0,3));//1,2,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'));//1,D,E,F,A,B,C

(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()搜索数组中的元素,并返回元素最后所在的位置,如果找不到被检索元素,返回-1

console.log(arr3.lastIndexOf(2));//7

(10)join将数组的所有元素放入一个字符串。数组转换位置字符串。不改变原数组。

console.log(arr3.join());

(11)split()将字符串转化为数组

console.log(arr3.split());//[1, 2, 3, 4, 'A', 'B', 'C', 2, 3, 4]
var str="hello"
console.log(str.split(""));//['h','e','l','l','o']

(12)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] 改变原数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值