/*slice()就是对应string的substring()版本,它截取array的部分元素,然后返回一个新的array*/ var arr6 = ['A' , 'B' , 'C' , 'D' , 'E' , 'F' , 'G']; arr6.slice(0,3);//从索引0 开始,到索引3结束,但不包括索引3:['A','B','C'] arr6.slice(3);//从索引3开始到结束['D' , 'E' , 'F' , 'G']
/*如果不给slice()传递任何参数,它就会从头到尾截取所有元素。利用这一点,很容易复制一个array*/ var arr = ['A' , 'B' , 'C' , 'D' , 'E' , 'F' , 'G']; var aCopy = arr.slice(); aCopy;//['A' , 'B' , 'C' , 'D' , 'E' , 'F' , 'G'] aCopy === arr;//false
/*push和pop*push()向array的末尾添加若干元素,pop()则是把array的最后一个元素删除掉*/ var arr=[1,2]; arr.push('A','B');//返回array新的长度:4 arr;//[1,2,'A','B'] arr.pop();//pop()返回'B' arr;//[1,2,'A'] arr.pop(); arr.pop(); arr.pop();//连续pop()3次 arr;//[] arr.pop();//空数组继续pop不会报错,而是返回undefined arr;//[]
/*unshift和shift*如果要往array的头部添加若干元素,使用unshift()方法,shift()方法则是把array的第一个元素删掉*/ var arr= [1,2]; arr.unshift('A','B');//返回Array新的长度:4 arr;//['A','B',1,2] arr.shift();//返回‘A’ arr;//['B',1,2] arr.shift(); arr.shift(); arr.shift();//连续shift3次 arr;//[] arr.shift();//空数组连续shift不会报错,而是返回undefined arr;//[]
/*reverse()把整个数组的元素顺序翻转*/ var arr = ['one' , 'two' , 'three']; arr.reverse(); arr;//['three','two','one']
/*splice()方法是修改array的“万能方法”。它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素*/ var arr = ['Microsoft','Apple','Yahoo','AOL','Excite','Oracle']; //从索引2开始删除3个元素,然后再添加两个元素 arr.splice(2,3,'Goole','Facebook');//返回删除的元素['Yahoo','AOL','Excite'] arr;//['Microsoft','Apple','Google','Facebook','Oracle'] /*只删除,不添加*/ arr.splice(2,2);//['Google','Facebook'] arr;//['Microsoft','Apple','Oracle'] /*只添加,不删除*/ arr.splice(2,0,'Google','Facebook');//返回[],因为没有删除任何元素 arr;//['Microsoft','Apple','Google','Facebook','Oracle']
/*concat()方法是把当前的array和另一个array连接起来,并返回一个新的Array*/ var arr = ['A' , 'B' ,'C']; var added = arr.concat([1,2,3]); added;//['A','B','C',1,2,3] arr;//['A','B','C'] /*concat()方法并没有修改当前的array,而是返回了一个新的array*/ /*实际上,concat()方法可以接受任意个元素和array,并且自动把array拆开,然后全部添加到新的array里面:*/ var arr['A' , 'B' ,'C']; arr.concat(1,2,[3,4]);//['A' , 'B' ,'C',1,2,3,4]
/*join()方法是一个非常实用的方法,它把当前Array的每个元素都用指定的字符串连接起来,然后返回连接后的字符串。*/ var arr=['A','B','C',1,2,3]; arr.join('-');//'A-B-C-1-2-3' /*如果array的元素不是字符串,将自动转换为字符串后再连接*/
多维数组
/*多维数组,如果数组的某个元素又是一个array,则可以形成多维数组*/ var arr=[[1,2,3],[400,500,600],'-']; /*上述array包含3个元素,其中头两个元素本身也是array*/ var x = arr[1][1]; alert(x);//通过索引取到500这个值