1. 關於js memorize技術斐波那契函數運行時間對比
varmemoize=function(f){
varcache={};
returnfunction(){
//JSON是JS提供的一個工具對象(Utility)
vararg_str=JSON.stringify(arguments);
cache[arg_str]=cache[arg_str]||f.apply(f,arguments);
returncache[arg_str];
};
};
functionfibo(n){
if(n==1||n==2){
return1;
}
returnfibo(n-1)+fibo(n-2);
}
functiontestfibo(f,n){
varnow=Date.now();
f.call(null,n);
varnewNow=Date.now();
return'執行時間:'+newNow-now+'ms';
}
varexecFibo=memoize(testfibo);
varresult=execFibo(fibo,40);
console.log(result);//->863ms
2. 在js裡面定義函數比較兩個數的大小並返回較大值的數怎麼辦
JavaScript 有自帶函數抄Math.max,用於獲取最大值襲,且支持多個數字。以下是定義的源代碼:
#include"stdio.h"
int max(int x, int y)
{int z;
z=(x>y)?x:y;
return z;
}
int main()
{ int a,b,c;
scanf("%d%d%d",&a,&b,&c);
a=max(a,b);
a=max(a,c);
printf("%d
",a);
getchar();
return 0;
}
3. js時間戳怎麼比較
在js中,可以對兩個時間戳進行相減,使用if語句判斷結果,從而實現時間戳的比專較。具體屬步驟如下:
1、在test.html文件內,命名為test.html,用於講解js時間戳怎麼比較。
4. Js中的數組sort()排序問題
比較函數的參數 v1 和 v2 代表數組里的兩個元素
如果 v1 小於 v2,排序後的數組 v1 在 v2 前面,此時返回一個內負數 (即上面的 return -1)容
如果 v1 等於 v2,排序後兩者位置不變,此時返回 0(即上面的 return 0)
如果 v1 大於 v2,排序後 v1 在v2 後面, 返回一個正數(即上面的 return 1)
//比較函數一般簡寫成:
arr.sort(function(a,b){
returna-b//升序
});
arr.sort(function(a,b){
returnb-a//降序
});
//對應上面的解釋好好想下,不難理解為什麼這樣寫
5. js函數中實現4個值相比較取最大的和最小的。
var str = "10,108,20,2,30,399,4";
var str_arr = str.split(",");
str_arr.sort(function(a, b) {
return a - b;
})
// min: 2
alert(str_arr[0]);
// max: 399
alert(str_arr[str_arr.length - 1]);