1.js是一门面向对象的语言。
2.创建一个数组:
(1)构造函数创建:
(2)使用字面量创建: var arr = new Array(10,20,30);
var arr = [10,20,30];注意:当创建只有一个元素的数组时,var arr = [10]表示数组中只有一个元素;var arr = new Array(10)表示数组的长度为10.
3.如果读取不存在的对象,不会报错,返回undefined。
4.获取数组长度:数组.length,对于非连续的数组,会返回最大索引+1.
5.length也能设置数组长度,如果修改的length大于原长度,用空格表示多出的,小于则删除多余的元素。
6.向数组最后添加一个元素,arr[arr.length] = a;
7.数组中的元素可以是任何数据类型,也可以是对象、函数、数组
8.数组的四个方法:
(1) push()向数组末尾添加一个或多个元素,并将新数组长度返回。
(2) pop()删除数组最后一个元素。并将被删除元素作为返回值返回。
(3) unshift()向数组开头添加一个或多个元素,并将新数组长度返回。
(4) shift()删除数组第一个元素。并将被删除元素作为返回值返回。
9.数组的遍历:将数组中的每一个元素都取出来
for(var i = 0;i <= arr.length;i++){ console.log(arr[i]); }10.forEach()用来遍历数组(注:只支持ie9以上的浏览器),传递的参数必须是一个函数
arr.forEach(function(value,index,obj){ //数组中有几个元素就执行几次 //value当前正在遍历的对象;index当前正在遍历的元素的索引;obj正在遍历的数组对象 })例:输出值为[{a:1,b:0},{b:1}]
var arr = [{a:1},{}]; arr.forEach(function(item,idx){ item.b = idx; }); console.log(arr);11.数组方法:
(1)slice()用来从数组中提取出指定元素:
arr.slice(start,end); //start截取开始位置(包含开始索引),end截取结束位置(不包含结束索引),且不会改变原数组(2)splice()删除数组中的指定元素,将删除的元素返回,并向删除位置插入新元素,如果 i=0,表示向开始位置后插入元素://第二个参数可以不写,此时截取开始位置往后所有元素 //参数可以为负数,-1表示倒数第一个。
arr.splice(start,i,新插入的元素); //start开始位置索引,i表示删除的数量练,去重练习:
var arr = [1,2,3,2,4,5,2,1,3,4,2,1]; /* 遍历数组 */ for(var i=0;i<arr.length;i++){ /* 获取当前元素后的所有元素 */ for(var j = i+1;j<arr.length;j++){ //判断两个值是否相等 if(arr[i] == arr[j]){ //相等则删除j对应的元素 arr.splice(j,1); //删除后后面的元素位置会提前 j--; } } } console.log(arr);12.concat(),将两个或多个数组连接在一起,将新数组返回,对原数组不影响
13.join(连接符),将数组转换为一个字符串,并返回,对原数组不影响。参数即为字符串之间的连接符,默认“ , ”。
14.reverse(),反转数组,对数组本身有影响。
14.reverse(),反转数组,对数组本身有影响。
15.sort(),对数组元素进行排序,默认按照Unicode编码排序,对数组本身有影响。
例:使用回调函数控制排序规则。返回值大于0,交换位置,返回值小于0,位置不变,等于0,也不变。
arr.sort(function(a,b){ /*if(a>b){ return 1;//交换位置 }else if(a<b){ return -1;//位置不变 }else{ return 0; }*/ //升序排列 return a-b; //降序 return b-a; });