标签:
一、定义
数组是一组连续的变量组成的集合--统一起一个名字 批量管理多个数据(js的存储都是数组)
二、创建
1 //创建的四种方式 2 //1 创建一个空数组对象 3 var arr1=[]; 4 5 //2 创建数组的同时,维数指定初始元素 6 var arr2=[1,2,3,4,5]; 7 8 //3 用new关键字创建一个数组类型对象,并返回新对象的地址 9 var arr3=new Array(); 10 11 //4 创建n个元素的数组空数组;创建带初始元素的数组 12 var arr4=new Array(4);//创建四个元素的空数组 13 var arr5=new Array(1,2,3,4,5); 14 15 /* 16 js数组下标越界不会出错 17 为不存在的位置赋值:不会出错,会自动创建指定下标的新元素 18 从不存在的位置取值:不会报错,也不会增加新元素,而是返回undefined 19 所有没有赋值的变量的默认值为(自动赋值)undefined; 20 主动释放一个变量引用的对象使用null; 21 当使用完一个较大的对象时,主动释放对象是好的习惯; 22 */
三、数组的复制与取值
1 //数组赋值 数组变量[i]=新值; 2 arr2[2]=99; 3 4 //数组取值 数组变量[i]; 5 var i=arr2[0];
四、length属性
1 /*获取数组中的元素个数(不等于实际的元素个数) 2 示例: 3 arr[arr.length-1];获得任意长度数组中的最后一个元素 4 arr[arr.length]=Value; 向数组末尾追加一个新元素 5 改小length的值,可以删除末尾元素 6 */ 7 var att=[1,2,3,4,5]; 8 console.log(att.length);//5 9 att[100]=100; 10 console.log(att.length);//101 11 console.log(att);//[1, 2, 3, 4, 5, 100: 100]
length属性大多用于索引数组的遍历
五、关联数组
定义:可以自定义下标的数组(索引数组:自动生成下标的数组都是索引数组)
1 /*示例*/ 2 var fbb=[]; 3 fbb["sname"]="范冰冰"; 4 fbb["shx"]=91; 5 fbb["yuw"]=65; 6 fbb["eng"]=95; 7 console.log(fbb);//[sname: "范冰冰", shx: 91, yuw: 65, eng: 95] 8 /* 9 关联数组中的length属性失效 10 关联(hash)数组:下标不能重复;优点:利用Hash算法,精确定位某个下标的位置,不用遍历 11 索引数组:缺点:小标自动分配无意义,想要内容查找元素,只能从头开始遍历 12 */ 13 14 /*关联数组遍历*/ 15 for(var key in fbb){ 16 console.log(key+" : "+fbb[key]); 17 }//sname : 范冰冰 shx : 91 yuw : 65 eng : 95
六、数组API
1.数组输出toString(2种):
1 /*var str=arr.toString();-->输出数组中的内容,每个元素用逗号分隔,自动调用 2 var str=arr.join(“”);-->输出数组中的内容,自定义元素间连接符 3 */ 4 var arr=[1,2,3,4,5]; 5 console.log(arr);//[1, 2, 3, 4, 5] 默认toString()方法 6 console.log(arr.join("-"));//1-2-3-4-5 自定义连接符 7 8 /*join的两种固定使用方式 9 1.将字符组成单词:arr.join(""); 10 2.将单词组成句子:arr.join(" "); 11 */ 12 var arrChar=["H","e","l","l","o"]; 13 console.log(arrChar.join(""));//Hello 14 var arrWord=["My","name","is","Medeor","."]; 15 console.log(arrWord.join(" "));//My name is Medeor .
2.拼接concat和截取slice
1 /*concat示例 ar newArr.concat(另一个数组,值1,值2,...);*/ 2 var arr=[1,2,3,4,5]; 3 var newArr=arr.concat([6,7,8,9,0]); 4 console.log(newArr);//[1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 5 6 /*slice var subArr=arr.slice(starti,endi+1);//含头不含尾 7 (API无法直接修改原对象,而返回新对象)*/ 8 var subArr=newArr.slice(3,7); 9 console.log(subArr);//[4, 5, 6, 7]
3.splice 删除、插入、替换(直接修改原对象)
1 /*1.删除:[var deleted=]srr.splice(strti,删除个数);*/ 2 var arr=[1,2,3,4,5,6,7,8,9,0]; 3 arr.splice(2,3);//从下表为2的元素开始删除3个元素 4 console.log(arr);//[1, 2, 6, 7, 8, 9, 0] 5 6 /*2.插入:arr.splice(starti,0,新值1,...);*/ 7 arr.splice(2,0,5,4,3);//从下表为2的元素开始删除0个元素 插入5 4 3 8 console.log(arr);//[1, 2, 5, 4, 3, 6, 7, 8, 9, 0] 9 10 /*3.替换:arr.splice(starti,删除个数,新值1,...);*/ 11 arr.splice(2,3,"a","b","c");//从下表为2的元素开始删除3个元素 插入a b c 12 console.log(arr);//[1, 2, "a", "b", "c", 6, 7, 8, 9, 0]
4.arr.reverse();颠倒数组中所有元素
标签:
原文地址:http://www.cnblogs.com/Medeor/p/4896333.html