今天看到同事的一段代码如下:
- var result = [];
- for(var j = 0; j < 10; j++) {
- result[j] = Math.round( Math.random() * 100 );
- if(j > 0) {
- for(var m = j - 1; m >= 0; m--) {
- if(result[j] == result[m]) {
- j--;
- break;
- }
- }
- }
- }
代码中for循环和if语句嵌套的层次太多,如果不是随机取10个数,而是取更多的数的话,这样for循环的次数太多了,代码执行的时间也会变长。所以思考使用空间换时间的方式,来简化代码,并且减少语句的嵌套,代码如下:
- var result = [];
- var temp = [];
- var len = 0;
- var num;
- while(len < 10){
- num = Math.round( Math.random() * 100 );
- if(!temp[num]) {
- temp[num] = 1;
- result.push(num);
- len++;
- }
- }
评论