程式31:有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中 var test=[213,134,134,84,62,11]; const num=33; test.push(num); test.sort(function(a,b){ for(var i=0;i<test.len ...
程式31:有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中 var test=[213,134,134,84,62,11]; const num=33; test.push(num); test.sort(function(a,b){ for(var i=0;i<test.length-2;i++){ if(test[i]>test[i+1]){ return b-a; }else if(test[i]<test[i+1]){ return a-b; } } }); console.log(test); 結果 [ 213, 134, 134, 84, 62, 33, 11 ] 程式32:將一個數組逆序輸出 var test=[213,134,134,84,62,11]; var arr=[]; for(var i=test.length-1;i>=0;i--){ arr[test.length-1-i]=test[i]; } console.log(arr); 結果 [ 11, 62, 84, 134, 134, 213 ] 程式33:列印出楊輝三角形(打出10行) 楊輝三角第n行第m個數為c(n-1,m-1)=(n-1)!/((n-m)!*(m-1)!) var n=10; for(var i=1;i<=n;i++){ for(var k=1,sum1='';k<=n-i;k++){ sum1+=' '; } for(var j=1,sum2='';j<=i;j++){ sum2+=fn(i-1)/(fn(i-j)*fn(j-1))+' '; } console.log(sum1+sum2); } function fn(x){ if(x==0){ return 1; }else{ for(var k=1,res=1;k<=x;k++){ res*=k; } return res; } } 結果 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 程式34:輸入數組,最大的與第一個元素交換,最小的與最後一個元素交換,輸出數組 var arr=[12345,-142,5326,63457,865,796]; var max=arr[0],min=arr[0]; for(var i=1;i<arr.length;i++){ if(arr[i]>max){ max=arr[i]; } if(arr[i]<min){ min=arr[i]; } } arr[arr.indexOf(max,0)]=arr[0]; arr[0]=max; arr[arr.indexOf(min,0)]=arr[arr.length-1]; arr[arr.length-1]=min; console.log(arr); 結果 [ 63457, 796, 5326, 12345, 865, -142 ] 程式35:有n個整數,使其前面各數順序向後移m個位置,最後m個數變成最前面的m個數 var n=20,m=5; var arr=[2131,14,14,532,4369,678,346,3650,990,8567,395,757,4579,68,1234,976,7421,563,54323,754]; console.log(arr); for(var i=1;i<=n-m;i++){ arr.push(arr[0]); arr.splice(0,1); } console.log(arr); [2131,14,14,532,4369,678,346,3650,990,8567,395,757,4579,68,1234,976,7421,563,54323,754] [976,7421,563,54323,754,2131,14,14,532,4369,678,346,3650,990,8567,395,757,4579,68,1234]