javascript数组常用的方法:
push():返回值,数组新的长度
pop():返回值,被删除的数组末尾元素
shift():返回值,被删除的数组首部元素
unshift():返回值,数组新的长度
concat():返回值,拼接后新的数组
slice():返回值,截取的新的数组
splice():返回值,被插入/删除/替换元素的数组
map():返回新的数组
filter():返回被筛选后的新的数组
reduce():返回新的数组
sort():返回排序后的新的数组
与数组有关的两个:
join():将数组转化为用特殊符号分割的字符串
reverse():将数组顺序逆转
不常用的:
every()
some()
1 //1、使用sort方法进行排序的算法如下: 2 3 //字符串排序: 4 5 var arr = [George,John,Thomas,James,Adrew,Martin]; 6 7 arr.sort(); 8 9 //数字排序: 10 11 var arr = [4,3,7,10,15,30,22]; 12 13 arr.sort(function(a,b){ 14 return a-b>0; 15 }) 16 17 //2、冒泡排序: 18 19 function bubbbleSort(arr){ 20 21 if(!Array.isArray(arr)){ 22 23 return new Error("arr不是数组"); 24 25 } 26 27 if(arr.length<=1){ 28 29 return arr; 30 31 } 32 33 var temp,i,j; 34 35 for(i=0;i<arr.length;i++){ 36 37 for(j=0;j<arr.length-i-1;j++){ 38 39 if(arr[j]>arr[j+1]){ 40 41 temp = arr[j]; 42 43 arr[j] = arr[j+1]; 44 arr[j+1]=temp; 45 46 } 47 48 } 49 50 51 } 52 return arr; 53 54 } 55 56 //改进版冒泡排序:(添加一个标志位,可以让已经排过序的不用重复遍历) 57 58 function bubbbleSort(arr){ 59 60 if(!Array.isArray(arr)){ 61 62 return new Error("arr不是数组"); 63 64 } 65 66 if(arr.length<=1){ 67 68 return arr; 69 70 } 71 72 var pos,temp,j; 73 var i = arr.length-1;//初始时,最后位置保持不变 74 75 while(i>0){ 76 pos = 0;//每一轮循环,位置从0开始。 77 for(j=0;j<i;j++){ 78 if(arr[j]>arr[j+1]){ 79 pos = j; 80 temp = arr[j]; 82 arr[j] = arr[j+1]; 83 arr[j+1]=temp; 84 85 } 86 87 } 88 89 i=pos; 90 } 91 return arr; 92 93 } 94 95 96 97 //3、快速排序(原理是,1、找一个基值,一般是数组的中间数,2、然后将大于中间值的数放右边,小于中间值的数放左边,3、然后递归第二步,4返回拼接好排序后的数组) 98 99 function quickSort(arr){ 100 if(!Array.isArray(arr)){ 101 return new Error("arr不是数组"); 102 } 103 104 if(arr.length<=1){ 105 return arr; 106 } 107 var i,left = [],right = []; 108 var midIndex = Math.floor(arr.length/2); 109 var midItem = arr.splice(midIndex,1)[0];//此处要把中间值从数组中去掉。 110 for(i=0;i<arr.length;i++){ 111 if(arr[i]<midItem){ 112 left.push(arr[i]); 113 }else{ 114 right.push(arr[i]); 115 } 116 } 117 return quickSort(left).concat([midItem],quickSort(right)); 118 }
参考文章:http://web.jobbole.com/87968/