问题一
使用Promise描述如下过程:绿灯亮3秒,然后红灯亮3秒,然后黄灯再亮3秒。灯亮过程可以用console表示。
当时写的不好,纠结在是封装个sleep函数还是用setTimeout,然后定义了三个Promise对象分别表示红、绿、黄灯亮的过程,自己感觉也挺不好的,所以有点畏首畏尾写不下去。回来在自己机器上几分钟就写出来了,还没有重复定义,内心真是。。那个悔啊,被别人看扁了,其实哥真不是不会啊。
function sleep(delay){ var now = new Date().getTime(); while(new Date().getTime() - now < delay){ } } function led(color){ console.log(color); sleep(3000); return new Promise(function(resolve,reject){ resolve(); }); } led("green").then(function(){ led("red"); }).then(function(){ led("yellow"); });问题二
自己实现一个sort2,尽可能地模拟js原有的sort函数
这个我确实不会写,js原有的sort函数还可以接收函数参数的。不过让我写个排序的函数还是没问题的。
function sort2(arr,option){ for(var i=0,len=arr.length;i<len-1;i++){ for(var j=i+1;j<len;j++){ if(option && option == 1){ //1为降序,默认或者0为升序 if(arr[j] > arr[i]){ var tmp = arr[j]; arr[j] = arr[i]; arr[i] = tmp; } }else { if(arr[j] < arr[i]){ var tmp = arr[j]; arr[j] = arr[i]; arr[i] = tmp; } } } }return arr;}//var arr = [9,4,6,2,1,3,5,8,7,0];var arr = ['c','b','e','a'];console.log(sort2(arr));该函数支持正序,逆序,数字,字母排序。



