一、建立数组:javascript
建立数组的三种方式 //-------------------------------------------------------------- var arr = [] // -->数组字面量 var arr = new Array() // --> 构造函数建立数组,()里面是参数,一个值时表示length属性 var arr = Array() 建立对象的三种方式 //-------------------------------------------------------------- var obj = {} //对象字面量 var obj = new Object() // --> 构造函数建立对象 var obj = Object()
数组是对象的一种特殊的形式java
var arr = [1, 2, 3, 4, 5, 6]; //数组下标值(索引值),英文index var obj = { 0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6 }
var arr = [, , , 4, 5, 6,]; // 在数组中并非每一个都有值,这种数组称为稀松数组 // ---> [ empty × 3, 4, 5, 6] 最后一个逗号后面是空的就会被截掉 // ------------------------------------------------------------- var arr1 = new Array(1,2,,3,4) var arr1 = new Array(1,2,,3,4,) var arr1 = new Array(,1,2,3,4) // 报错,由于这里是参数,不能为空
二、 数组的方法: 数组的全部方法都是继承自Array.prototype数组
案例一: 添加数组的方法 push() ,unshift();dom
//push unshift 返回的是执行了方法后数组的长度 var arr = [2, 3, 4]; arr.push(5); // --> 在数组最后一个值后加 arr.unshift(0,1) // --> 在数组的最前一位加
案例二: 删除数组的方法 pop(),shift()函数
arr = [1, 2, 3, 4, 5, 6, 7, 8] arr.pop(); // --> 剪切数组的最后一位,没有参数 arr.shift(); // --> 剪切数组的第一位,没有参数
案例三:数组倒叙 reverse.net
arr = [1, 2, 3, 4, 5, 6, 7, 8] arr.reverse(); console.log(arr); //---> [8, 7, 6, 5, 4, 3, 2, 1]
案例四:arr.splice(开始剪切的位置,剪切的个数,剪切位置须要添加的新数据)prototype
arr = [1, 2, 3, 4, 5, 6, 7, 8] arr.splice(2,3,'a','b','c') console.log(arr) // ---> [1, 2, "a", "b", "c", 6, 7, 8]
案例五:sort()方法,code
// 数组排序方法 sort var arr = [856, 72, 83, 73, 43, 93, 742] arr.sort(); //--> [43, 72, 73, 742, 83, 856, 93] // 默认是按照 ASCⅡ 码排序 按从小到大的顺序 //字符串 ASCII码比较大小,先比较第一位,接着比较第二位,以此类推 //在ASCIl码表中,按照ASCIl码值从小到大排列顺序是数字、英文大写字母、英文小写字母。数字ASCIl码值比字母小
ASCII码对照表: http://tool.oschina.net/commons?type=4对象
var arr = [-5,-6,1,43,3,6]; // ---> 参数是a,b // ---> 返回值是负数 a排在前面 // ---> 返回值是正数 a排在后面 // ---> 返回值是0,保持不变 // arr.sort(function(a,b){ // if( a > b){ // return 1 // }else{ // return -1 // } // }) arr.sort(function(a,b){ return a-b }) 升序排列 console.log(arr) // ---> -6 -5 1 3 6 43
随机排序排序
// 随机排序 //------------------------------------------------------- var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9] // Math.random() 返回(0,1)之间的随机数 arr.sort(function(a,b){ var rand = Math.random(); if(rand-0.5>0){ return 1 }else{ return -1 } }) console.log(arr) ;
案例六: arr.contact( )方法;
//arr.concat 将两个数组进行合并 //---------------------------------------------------------------------------- var arr = [1,2,3,4,5,6,7]; var arr2 = [8,9,10]; var arr3 = arr.concat(arr2); console.log(arr3);
案例七: arr.toString()
//arr.toString() 将数组转化为字符串 //---------------------------------------------------------------------------- var arr = [1,2,3,4,5,6,7]; arr.toString(); console.log(arr);
案例八:arr.slice( ):
//arr.slice() 截取数组中的片断,而且须要用一个变量来接收 //传入一个参数,就会从对应的地方一直截取到最后 //传入两个参数则会截取下前面的元素,到后面的元素,可是不包含后面的元素 //---------------------------------------------------------------------------- var arr = [1,2,3,4,5,6,7]; var arr2 = arr.slice(1,3); console.log(arr2);
案例九: arr.join( ):
//arr.join() 将数组的元素放入字符串,参数就是分隔符 //---------------------------------------------------------------------------- var arr = ['a','b','c','d']; var arr2 = arr.join('___') console.log(arr2); //--> a___b___c___d
案例十:split( );
//arr.split() 将字符串变成数组 //不传值,直接将整个字符串填到数组中, //传空字符串,将字符串每一位分红一个元素,填入数组 //传入字符串中存在的,则会以这个为分割符号,将其断开填入数组 //传入不相关的,则跟不传值同样 //能够填入第二个参数,表明填入的长度 //---------------------------------------------------------------------------- var str = 'wo-ai-xiao-geng'; var str2 = str.split(); var str3 = str.split(''); var str4 = str.split('-'); console.log(str2); // --> ["wo-ai-xiao-geng"] console.log(str3); // --> ["w", "o", "-", "a", "i", "-", "x", "i", "a", "o", "-", "g", "e", "n", "g"] console.log(str4); // --> ["wo", "ai", "xiao", "geng"]
三、类数组是相似于数组的特殊对象
具备数组的属性,又有对象的属性(狭义的对象和数组),有length属性,没有Array的方法