现在的位置: 首页 > javascript > 正文
Javascript数组操作
2013年03月08日 javascript ⁄ 共 4563字 暂无评论 ⁄ 被围观 2,691 views+

1. join()方法
join()可以把一个数组的所有元素都转换成字符串,然后再把他们连接起来,可以指定一个可选的字符串来分隔结果字符串的元素。如果没有指定分隔字符串,就使用逗号分隔元素

  1. <script type="text/javascript">   
  2.        //join()方法   
  3.        var a=[1,2,3];   
  4.        var s= a.join();   
  5.        var str2= a.join('-');   
  6.        console.log(s);//1,2,3   
  7.        console.log(str2);//1-2-3   
  8.    </script>  

2. sort()方法
sort()是在原数组上对数组元素进行排序,返回排序后的数组,如果调用sort()时不传递给它参数,那么它将按照字母顺序对数组元素进行排序

  1. var arr=Array(56,45,48,65,9,1,35);   
  2. var arr2=Array("banana","cherry","apple");   
  3. var sortArr=arr.sort();   
  4. var sortArr2=arr2.sort();   
  5. console.log(arr.toString());//1,35,45,48,56,65,9   
  6. console.log(sortArr.toString());//1,35,45,48,56,65,9   
  7. console.log(arr2.toString());//apple,banana,cherry   
  8. console.log(sortArr2.toString());//apple,banana,cherry  

如果要将数组按照别的顺序来排序,必须将一个比较函数作为参数传递给sort(),该函数确定他的两个参数在排序数组中那个在前,那个在后。如果第一个参数应该位于第二个参数之前,那么比较函数将返回一个小于0的数,如果第一个参数应该出现在第二个参数之后,那么比较函数就会返回一个大于0的数。如过两个参数相等(例如他们的顺序是相等的),那么比较函数将返回0.例如,要将一个数组按照数字进行排序,而不是按照字母顺序进行排序,应该使用如下代码:

  1. var arr=Array(56,45,48,65,9,1,35);   
  2. var sortArr=arr.sort(function(a,b){   
  3.     return a-b;   
  4. });   
  5. console.log(arr.toString());//1,9,35,45,48,56,65   
  6. console.log(sortArr.toString());//1,9,35,45,48,56,65    

3. concat()方法
concat()能创建并返回一个数组,这个数组包含了调用concat()的原始数组元素,其后跟随的是concat()的参数。如果其中有些参数是数组,那么他将被展开,其元素将被添加到返回的数组中。但是要注意concat()并不能递归地展开一个元素为数组的数组。下面是测试例子:

  1. var arr=[1,2,3];   
  2. var arr1=arr.concat(8,95,6);   
  3. var arr2=arr.concat([4,5]);   
  4. var arr3=arr.concat(4,3,[5,[7,8]])   
  5. var arr4=arr.concat([89,6],[1,5,3]);   
  6.   
  7. console.log(arr);//[1,2,3]   
  8. console.log(arr1);//[1,2,3,8,95,6]   
  9. console.log(arr2);//[1,2,3,8,4,5]   
  10. console.log(arr3);//[1,2,3,4,3,5,[7,8]]   
  11. console.log(arr4);//[1,2,3,89,6,1,5,3]   

4. reverse()方法
Array.reverse()将颠倒数组元素的顺序,并返回颠倒后的数组。它在原数组上执行这一操作,也就是说,它并不是创建一个重排元素的新数组,而是在已经存在的数组中对数组元素进行排序。测试代码:

  1. var arr=[1,2,3];   
  2. arr.reverse();   
  3. console.log(arr);//[3,2,1]  

5. slice()方法
slice()返回的是指定数组的一个片段(slice),或者说是子数组。它的两个参数指定了要返回的片段的起止点。返回的数组包含由第一个参数指定的元素和从那个元素开始到第二个参数指定的元素为止的元素,但是并不包含第二个参数所指定的元素。如果只传递给它一个参数,那么返回的数组将包含从起始位置到原数组结束处的所有的元素,如果两个参数中有一个负数,那么它所指定的是相对数组中的最后一个元素而言的元素,例如,参数值为-1指定的是数组的最后一个元素,而参数值为-3,指定的是从数组的最后一个元素起,倒数第三个元素。测试例子:

  1. var arr=["java","C#","SQL"];   
  2. var arr1=arr.slice(0,2);   
  3. var arr2=arr.slice(1);//从下标为1的开始取值直到末尾   
  4. var arr3=arr.slice(1,-1);//-1为末尾   
  5. var arr4=arr.slice(-3,-1);//-3为倒着数第三个   
  6. var arr5=arr.slice(-2);//-2为倒着数第二个   
  7. var arr6=arr.slice(-1,-3);   
  8.   
  9. console.log(arr.toString());//java,C#,SQL   
  10. console.log(arr1.toString());//java,C#   
  11. console.log(arr2.toString());//C#,SQL   
  12. console.log(arr3.toString());//C#   
  13. console.log(arr4.toString());//java,C#   
  14. console.log(arr5.toString());//C#,SQL   
  15. console.log(arr6.toString());//""   

6. splice()方法
splice()是插入或删除数组元素的通用方法,它在原数组上修改数组
splice()可以把元素从数组中删除,也可以将新元素插入到数组中,或者是同时执行这两种操作。位于被插入了或删除了的元素之后的数组元素会进行必要的移动,以便能够和数组余下的元素保持连续性。splice()的第一个参数指定了要插入或删除的元素在数组中的位置。第二个参数指定了要从数组中删除的元素个数。如果第二个参数被省略了,那么将删除开始元素到数组结尾处的所有元素。splice返回的是删除了元素之后的数组,如果没有删除任何元素,将返回一个空数组。测试例子:

  1. var arr=new Array(1,2,3,56,89,48,6);   
  2. var arr1=arr.splice(1,3);//下标为1的开始删除三个,并返回删除的数组   
  3. console.log(arr.toString());//1,89,48,6   
  4. console.log(arr1.toString());//2,3,56   
  5.   
  6. var arr2=arr.splice(1,3,"java","sql","javascript","php");//删除并添加   
  7.   
  8. console.log(arr.toString());//1,java,sql,javascript,php   
  9. console.log(arr1.toString());//2,3,56   
  10. console.log(arr2.toString());//89,48,6   
  11.   
  12. var  arr3=arr.splice(2);//删除下标2以后的包括下标2的    
  13. console.log(arr.toString());//1,java   
  14. console.log(arr3.toString());//sql,javascript,php  

7. push()方法
push()方法可以将一个或多个新元素附加到数组的尾部,然后返回数组的新长度。注意,这个方法是在原数组上修改数组,而非生成一个修改过的数组副本。

  1. var arr=new Array();   
  2. var n=arr.push(1,2,3);   
  3. console.log(arr);//[1,2,3]   
  4. console.log(n);//3   
  5.   
  6. var arr2=Array(1,2,3);   
  7. var m=arr2.push([7,8,9,2,[2,2]]);   
  8. console.log(arr2);//[1,2,3,[7,8,9,2,[2,2]]]   
  9. console.log(m);//4   

8.pop()方法
pop方法将删除数组的最后一个元素,减少数组的长度,返回它删除的值。注意,这个方法是在原数组上修改数组,而非生成一个修改过的数组副本,测试例子:

  1. var arr=[1,35,98,6];   
  2. var arr1=arr.pop();   
  3. console.log(arr.toString());//1,35,98   
  4. console.log(arr1.toString());//6   

9.unshift()方法和shift()方法
unshift()方法和shift()方法的行为和push()与pop()非常相似,只不过他们是在数组的头部进行元素的插入和删除,而不是在尾部进行元素的插入和删除。方法unshift()会将一个或多个元素添加到数组的头部,返回数组的新长度。方法shift()会删除并返回数组的第一个元素,测试例子:

  1. var arr=[1,35,98,6];   
  2. var arr1=arr.unshift();   
  3. console.log(arr.toString());//1,35,98,6   
  4. console.log(arr1.toString());//4   
  5.   
  6. var arr2=[1,3,2];   
  7. var arr3= arr2.shift();   
  8. console.log(arr2.toString());//3,2   
  9. console.log(arr3.toString());//1  

10.toString()方法和toLocaleString()方法
toString()方法可以将数组的每个元素转换成一个字符串,然后输出这些字符串的列表,字符串之间用逗号隔开。注意,在输出的结果中,数组的值的周围没有方括号或者其他定界符。toLocaleString()方法是toString()方法的本地化,toLocaleString()首先调用每个数组元素的 toLocaleString() 方法,然后使用地区特定的分隔符把生成的字符串连接起来,形成一个字符串。

  1. var arr=[1,35,98,6];   
  2. console.log(arr.toString());//1,35,98,6  

给我留言

留言无头像?


×