定义一些常量,使用闭包,匿名函数实现常量的定义。
例如:
var
Class
=
(function()
{
var
UPPER_BOUND
=
100//定义了常量
var
Test={}
//
定义了一个静态方法
获取常量的方法
Test.getUPPER_BOUND=function()
{
return
UPPER_BOUND
}
return
Test
})()
用法:
var
k=Class.getUPPER_BOUND()
alert(k)//
2.多个常量的情况下:
var
Class
=
(function()
{
//
Private
static
attributes.
var
constants
=
{//定义了两个常量
UPPER_BOUND:
100,
LOWER_BOUND:
-100
}
var
Test={}
//
定义了一个静态方法
Test.getConstant=function(name){//获取常量的方法
return
constants[name]
}
return
Test
})()
用法:
var
k=Class.getConstant('UPPER_BOUND')
alert(k)
//排序算法window.onload = function(){
var array = [0,1,2,44,4,
324,5,65,6,6,
34,4,5,6,2,
43,5,6,62,43,
5,1,4,51,56,
76,7,7,2,1,
45,4,6,7,8]
//var array = [4,2,5,1,0,3]
array = sorting.shellSort(array)
alert(array)
}
var sorting = {
//利用sort方法进行排序
systemSort: function(arr){
return arr.sort(function(a,b){
return a-b
})
},
//冒泡排序
bubbleSort: function(arr){
var len=arr.length, tmp
for(var i=0i<len-1i++){
for(var j=0j<len-1-ij++){
if(arr[j]>arr[j+1]){
tmp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = tmp
}
}
}
return arr
},
//快速排序
quickSort: function(arr){
var low=0, high=arr.length-1
sort(low,high)
function sort(low, high){
if(low<high){
var mid = (function(low, high){
var tmp = arr[low]
while(low<high){
while(low<high&&arr[high]>=tmp){
high--
}
arr[low] = arr[high]
while(low<high&&arr[low]<=tmp){
low++
}
arr[high] = arr[low]
}
arr[low] = tmp
return low
})(low, high)
sort(low, mid-1)
sort(mid+1,high)
}
}
return arr
},
//插入排序
insertSort: function(arr){
var len = arr.length
for(var i=1i<leni++){
var tmp = arr[i]
for(var j=i-1j>=0j--){
if(tmp<arr[j]){
arr[j+1] = arr[j]
}else{
arr[j+1] = tmp
break
}
}
}
return arr
},
//希尔排序
shellSort: function(arr){
console.log(arr)
var h = 1
while(h<=arr.length/3){
h = h*3+1 //O(n^(3/2))by Knuth,1973
}
for( h>=1h=Math.floor(h/3)){
for(var k=0k<hk++){
for(var i=h+ki<arr.lengthi+=h){
for(var j=ij>=h&&arr[j]<arr[j-h]j-=h){
var tmp = arr[j]
arr[j] = arr[j-h]
arr[j-h] = tmp
}
}
}
}
return arr
}
}
数组排序,你可以直接调用javascript原生自带的sort()方法,比如下面的例子:// Array.prototype.sort() //原生自带的数组的排序方法;
var fruit = ['apples', 'bananas', 'Cherries'] //定义一个数组
fruit.sort()// ['Cherries', 'apples', 'bananas'] //按字母排序的结果
var scores = [1, 2, 10, 21] //定义一个数字排序,你发现其实还是按照字母序排列的
scores.sort()// [1, 10, 2, 21]
如果希望按照期望的数字排序。
scores.sort(function(a,b){return a-b})//这样的就可以了。结果为:21 10 2 1
var things = ['word', 'Word', '1 Word', '2 Words']
things.sort()// ['1 Word', '2 Words', 'Word', 'word']
// In Unicode, numbers come before upper case letters,
// which come before lower case letters.