你的位置:首页 > Java教程

[Java教程]数组常用操作


1、shift():删除数组的第一个元素,返回删除的值。
2、unshift():把参数加载数组的前面,返回数组的长度。
3、pop():删除数组的最后一个元素,返回删除的值。
4、push():将参数加载到数组的最后,返回数组的长度。
5、concat():把两个数组拼接起来,不改变原始数组,返回新的数组。 
6、splice(start,deleteCount,val1,val2,...)从start位置开始删除deleteCount项,并从该位置起插入val1,val2,... 
7、reverse()将数组反序 
8、sort(orderfunction)按指定的参数对数组进行排序 
9、slice(start,end)返回从原数组中指定开始下标到结束下标之间的项组成的新数组 
10、join(separator):将数组的元素组起一个字符串,以separator为分隔符,默认逗号 
11、toString()把数组转换为字符串,并返回结果。
 
合并数组的几种方式
1、concat()
var num1 = [1, 2, 3];var num2 = [4, 5, 6];var num3 = [7, 8, 9];
// 组成新数组[1, 2, 3, 4, 5, 6, 7, 8, 9]; 原数组 num1, num2, num3 未被修改var nums = num1.concat(num2, num3);

2、循环合并

for (var i=0; i < b.length; i++) {  a.push( b[i] );}

3、apply

var merge = function() { 	return Array.prototype.concat.apply([], arguments)  } merge([1,2,4],[3,4],[5,6]);//[1, 2, 4, 3, 4, 5, 6]

4、去重复

var arr1 = ['a'];var arr2 = ['b', 'c'];var arr3 = ['c', ['d'], 'e', undefined, null];var concat = (function(){ // concat arr1 and arr2 without duplication. var concat_ = function(arr1, arr2) {  for (var i=arr2.length-1;i>=0;i--) {   arr1.indexOf(arr2[i]) === -1 ? arr1.push(arr2[i]) : 0;  } }; // concat arbitrary arrays. // Instead of alter supplied arrays, return a new one. return function(arr) {  var result = arr.slice();  for (var i=arguments.length-1;i>=1;i--) {   concat_(result, arguments[i]);  }  return result; };}());concat(arr1, arr2, arr3);//[ 'a', null, undefined, 'e', [ 'd' ], 'c', 'b' ]

5、处理undefined和null

这里的undefined可能由数组本身存在的undefined元素引起,也可能由于delete引起。

var concat = (function(){ // concat arr1 and arr2 without duplication. var concat_ = function(arr1, arr2) {  for (var i=arr2.length-1;i>=0;i--) {*   if (arr2[i] === undefined || arr2[i] === null) {*    continue;*   }   arr1.indexOf(arr2[i]) === -1 ? arr1.push(arr2[i]) : 0;  } }; // concat arbitrary arrays. // Instead of alter supplied arrays, return a new one. return function(arr) {  var result = arr.slice();  for (var i=arguments.length-1;i>=1;i--) {   concat_(result, arguments[i]);  }  return result; };}());concat(arr1, arr2, arr3);//[ 'a', 'e', [ 'd' ], 'c', 'b' ]delete arr3[2]; concat(arr1, arr2, arr3);//[ 'a', [ 'd' ], 'c', 'b' ]

6、扁平化

var concat = (function(){ // concat arr1 and arr2 without duplication. var concat_ = function(arr1, arr2) {  for (var i=arr2.length-1;i>=0;i--) {*   // escape undefined and null element*   if (arr2[i] === undefined || arr2[i] === null) {*    continue;*   }*   // recursive deal with array element*   // can also handle multi-level array wrapper*   if (classof(arr2[i]) === 'Array') {*    for (var j=arr2[i].length-1;j>=0;j--) {*     concat_(arr1, arr2[i][j]);*    }*    continue;*   }   arr1.indexOf(arr2[i]) === -1 ? arr1.push(arr2[i]) : 0;  } }; // concat arbitrary arrays. // Instead of alter supplied arrays, return a new one. return function(arr) {  var result = arr.slice();  for (var i=arguments.length-1;i>=1;i--) {   concat_(result, arguments[i]);  }  return result; };}());concat(arr1, arr2, arr3)//[ 'a', 'd', 'c', 'b' ]