web前端javaScript笔记——(6)数组

对象一般分为内建对象,宿主对象,自定义对象。

数组(Array)

数组也是一个对象

它和我们普通对象功能类似,也是用来存储一些值的

不同的是普通对象是使用字符串作为属性名的,而数组时使用数字来作为索引操作元素案引:

从0开始的整数就是索引

数组的存储性能比普通对象要好,在开发中我们经常使用数组来存储一些数据

创建数组对象

var arr=new Array();

console.log(arr);   //””

console.log(typeof arr);   //Object

向数组中添加元素     数组[索引]=值

arr[0]=1;

读取数组中的元素     数组[索引]

console.log(arr[o]);   

如果读取不存在的索引,不会报错,会返回undefined

可以用length来获取数组的长度(元素的个数)

console.log(arr.length);

打印输出数组 console.log(arr);  //1,2,3,3(举个例子)

对于连续的数组,使用length可以获取到数组的长度(元素的个数)对于非连续的数组,使用length会获取到数组的最大的索引+1尽量不要创建非连续的数组

修改length

如果修改的length大于原长度,则多出部分会空出来如果修改的length小于原长度,则多出的元素会被删除

//arr.length = 10;

向数组的最后一个位置添加元素

arr[arr.length]=值

数组字面量

用字面量创建数组

var arr=[ ];

使用字面量创建数组时,可以在创建时就指定数组中的元素

var arr=[1,2,3,4,5,10 ];

使用构造函数来创建数组

var arr2 = new Array();

var arr2 = new Array(10,20,30);   //也可以创建时进行初始化

/使用构造函数创建数组时,也可以同时添加元素,将要添加的元素作文构造函数的参数传递

//创建一个数组数组中只有一个元素  arr=[10];

//创建一个长度为10的数组         arr2 = new Array(10);

console.log(arr2.length);//10

数组中的元素可以是任意的数据类型arr = ["hello",1,true,null,undefined];

console.log(arr[3]); //null

//也可以是对象

var obj = (name:"孙悟空"};  

arr[arr.length] = obj;

console.log(arr[arr.length]   //[object Object]

arr[{name:”孙悟空”},{name:”猪八戒”},{name:”沙和尚”}];

console.log(arr);   [object Object],[object Object],[object Object]

数组中的元素可以是任意的数据类型。也可以是对象,也可以是一个函数。

arr=[function(){alert(1)},function(){alert(2)}];

arr[0]();  //调用函数

二维数组

arr=[[1,2,3],[2,3,4],[3,4,5]];

console.log(arr);   //1,2,3,2,3,4,3,4,5

console.log(arr[0]);   [1,2,3]

数组的方法

concat()             连接两个或更多的数组,并返回结果。            

join()               把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。

pop()               删除并返回数组的最后一个元素

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

reverse()            颠倒数组中元素的顺序。

shift()              删除并返回数组的第一个元素

slice()              从某个已有的数组返回选定的元素

sort()              对数组的元素进行排序

splice()             删除元素,并向数组添加新元素。

toSource()          返回该对象的源代码。

toString()           把数组转换为字符串,并返回结果

toLocaleString()     把数组转换为本地数组,并返回结果。

unshift()           向数组的开头添加一个或更多元素,并返回新的长度。

valueOf()          返回数组对象的原始值

push()

该方法可以向数组的末尾添加-个或多个元素,并返回数组的新的长度可以将要添加的元素作为方法的参数传递,

这样这些元素将会自动添加到数组的末尾

//创建一个数组

var arr = [“孙悟空”"猪八戒”,"沙和尚"];

arr.push("唐僧");

console.log(arr);

"孙悟空,猪八戒,沙和尚,唐僧"

该方法会将数组新的长度作为返回值返回

var result = arr.push("唐僧”"蜘蛛精”,"白骨精”)

console.log(arr);

console.log("result = "+result);

pop()

该方法可以删除数组的最后一个元素,并将被删除的元素作为返回值返回

arr.pop();

result = arr.pop();

console.log(arr);

console.log("result = "+result);

unshift()

向数组开头添加一个或多个元素,并返回新的数组长度

arr.unshift("牛魔王","二郎神");

向前边插入元素以后,其他的元素索引会依次调整

shift()

可以删除数组的第一个元素,并将被删除的元素作为返回值返回

result = arr.shift();

数组的遍历

创建一个数组

var arr=[“孙悟空”,”猪八戒”,”沙和尚”,”白龙马”];

for(var i= ; i

console.log(arr[i]);

}

输出 “孙悟空”,”猪八戒”,”沙和尚”,”白龙马”

for(var i= ; i<10 ; i++){

console.log(arr[i]);

}

输出 “孙悟空”,”猪八戒”,”沙和尚”,”白龙马”,”undefined”,”undefined”,”undefined”,”undefined”,”undefined”,”undefined”

//代码的改进,循环的终止条件为i

//打印输出:“孙悟空”,”猪八戒”,”沙和尚”,”唐僧”,”白骨精”



	
		
		js练习
		
   
		
			
		




	
		
		js练习
		
   
		
			
		

JS还给我们提供了一个方法,用来遍历数组forEach(),这个方法只支持IE8以上的浏览器



	
		
		js练习
		
   
		
			
		



	
		
		js练习
		
   
		
			
		

slice和splice

slice()

-可以用来从数组中截取指定元案

该方法不会改变元素数组,而是将截取到的元素封装到一个新数组中返回

参数:(包括左边,不包括右边)

1.截取开始的位置的索引

2.截取结束的位置的索引

var arr = [“孙悟空”,“猪八戒”,"沙和尚”,唐僧”,”白骨精”];

arr.slice(e,2);

console.log(arr);   //打印输出的是原数组 “孙悟空”,“猪八戒”,"沙和尚”,唐僧”,”白骨精”

var result = arr.slice(0,2);

console.log(result);   //"孙悟空,猪八戒"

第二个参数可以省略不写,返回第一个参数开始的所有数组元素

result = arr.slice(1);

console.log(result);

//"猪八戒,沙和尚,唐僧,白骨精"

索引可以传递一个负值,-1 倒数第一个,-2 倒数第二个

result = arr.slice(1,-2); 

console.log(result);    //“猪八戒,沙和尚”

splice()

可以用于删除数组中的指定元素

使用splice()会影响到原数组,会将指定元素从原数组中删除

并将被删除的元素作为返回值返回

var result = arr.splice(0,2);

console.log(arr);

console.log(result);

参数:

第一个,表示开始位置的索引

第二个,表示删除的数量

第三个及以后。。

可以传递一些新的元素,这些元素将会自动插入到开始位置索引前边

arr = ["孙悟空","猪八戒""沙和尚""唐僧”,"白骨精"];

var result = arr.splice(0,1,”牛魔王”,”铁扇公主”);

console.log(arr);

//console.log(result);   

//打印输出  “牛魔王,铁扇公主,猪八戒,沙和尚,唐僧,白骨精"

数组去重练习


	
		
		js练习
		
		
	
   
		
			
		

 

数组的剩余方法



	
		
		js练习
		
   
		
			
		

你可能感兴趣的:(前端,javascript,笔记)