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]);